Gutti hier is meins.
Lorenz Verschlüsselung
#include <Array.au3>
;By Sprenger120
$String = "Unit Light mach Spass und Freude"
$Passwort = "4576567456z54hb45 u4 56 5"
ConsoleWrite("Crypt & Encrypt" & @CRLF)
ConsoleWrite(" Orginal Text:" & $String & @CRLF)
ConsoleWrite(" Passwort:" & $Passwort & @CRLF&@crlf)
$s = Crypt($String, $Passwort)
ConsoleWrite("Verschlüsselt:" & $s & @CRLF)
$s = DeCrypt("615B5E420A7A5E535D424558550B0A0B664F14474C0A4351510B734553405252",$Passwort)
ConsoleWrite("Entschlüsselt:" & $s & @CRLF & @CRLF)
ConsoleWrite("Decrypt mit Falschem Passwort" & @CRLF)
[/autoit] [autoit][/autoit] [autoit]$s = DeCrypt("615B5E420A7A5E535D424558550B0A0B664F14474C0A4351510B734553405252","huhuxd")
ConsoleWrite($s & @CRLF)
ConsoleWrite("Decrypt mit richtigem Pw" & @CRLF)
[/autoit] [autoit][/autoit] [autoit]$s = DeCrypt("615B5E420A7A5E535D424558550B0A0B664F14474C0A4351510B734553405252","4576567456z54hb45 u4 56 5")
ConsoleWrite($s & @CRLF)
Func DeCrypt($Crypted, $Passwort)
$Passwort = StripOther($Passwort)
If Not IsArray($Passwort) Then Return -1
$Crypted = StringTrimAfter($Crypted, 2)
If Not IsArray($Crypted) Then Return -1
For $x = 0 To UBound($Crypted) - 1
$Crypted[$x] = Int("0x" & $Crypted[$x])
Next
_ArrayUp($Passwort, UBound($Crypted) + 1)
For $x = 0 To UBound($Crypted) - 1
$Crypted[$x] = Chr(BitXOR($Passwort[$x], $Crypted[$x]))
Next
$Crypted = _ArrayToString($Crypted, "")
$Crypted = StringReplace($Crypted, "?", " ")
Return $Crypted
EndFunc ;==>DeCrypt
Func Crypt($Klartext, $Passwort)
Local $Crypted, $x
$Crypted = StripOther($Klartext)
$Passwort = StripOther($Passwort)
If UBound($Crypted) - 1 < 1 Or UBound($Passwort) - 1 < 1 Then Return -1
_ArrayUp($Passwort, UBound($Crypted) + 1)
For $x = 0 To UBound($Crypted) - 1
$Crypted[$x] = BitXOR($Crypted[$x], $Passwort[$x])
Next
For $x = 0 To UBound($Crypted) - 1
$Crypted[$x] = Hex($Crypted[$x], 2)
Next
Return _ArrayToString($Crypted, "")
EndFunc ;==>Crypt
Func StringTrimAfter($sString, $iCount)
Local $iSplit = 0, $index
$iCount = Int($iCount)
If $iCount < 0 Then Return -1
If $iCount >= StringLen($sString) Then Return -1
$iSplit = Int(StringLen($sString) / $iCount)
Dim $aArray[$iSplit]
For $x = 0 To $iSplit - 1
$aArray[$x] = StringLeft($sString, $iCount)
$sString = StringTrimLeft($sString, $iCount)
Next
Return $aArray
EndFunc ;==>StringTrimAfter
Func _ArrayUp(ByRef $aArray, $iLen)
Local $Pos = 0
$iLen = Int($iLen)
If Not IsArray($aArray) Then Return -1
If $iLen < 1 Then Return -1
$OrginalArray = $aArray
$Pos = UBound($aArray)
Do
ReDim $aArray[UBound($aArray) * 2]
For $x = 0 To UBound($OrginalArray) - 1
If UBound($aArray) - 1 < $Pos + $x Then ExitLoop
$aArray[$Pos + $x] = $OrginalArray[$x]
Next
For $x = UBound($aArray) - 1 To 0 Step -1
If $aArray[$x] <> "" Then
$Pos = $x
$Pos += 1
ExitLoop
EndIf
Next
Until UBound($aArray) > $iLen + $iLen
While UBound($aArray) >= $iLen
_ArrayDelete($aArray, UBound($aArray) - 1)
WEnd
EndFunc ;==>_ArrayUp
Func StripOther($sString)
Local $char, $aTmp, $index = 0
$sString = StringStripWS($sString, 4)
$sString = StringReplace($sString, " ", "?")
$sString = StringReplace($sString,"ß","ss")
$aTmp = StringSplit($sString, "")
Dim $sString[1]
For $x = 1 To $aTmp[0]; - 1
$char = Asc($aTmp[$x])
If ($char >= 65 And $char <= 90) Or ($char >= 48 And $char <= 57) Or ($char >= 97 And $char <= 122) or ($char = 63) Then
$index += 1
ReDim $sString[$index]
$sString[$index - 1] = $char
EndIf
Next
Return $sString
EndFunc ;==>StripOther