[abgeschlossen] µitLight August '10

  • Gutti hier is meins.

    Lorenz Verschlüsselung
    [autoit]

    #include <Array.au3>
    ;By Sprenger120
    $String = "Unit Light mach Spass und Freude"
    $Passwort = "4576567456z54hb45 u4 56 5"

    [/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite("Crypt & Encrypt" & @CRLF)
    ConsoleWrite(" Orginal Text:" & $String & @CRLF)
    ConsoleWrite(" Passwort:" & $Passwort & @CRLF&@crlf)

    [/autoit] [autoit][/autoit] [autoit]

    $s = Crypt($String, $Passwort)
    ConsoleWrite("Verschlüsselt:" & $s & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    $s = DeCrypt("615B5E420A7A5E535D424558550B0A0B664F14474C0A4351510B734553405252",$Passwort)
    ConsoleWrite("Entschlüsselt:" & $s & @CRLF & @CRLF)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite("Decrypt mit Falschem Passwort" & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    $s = DeCrypt("615B5E420A7A5E535D424558550B0A0B664F14474C0A4351510B734553405252","huhuxd")
    ConsoleWrite($s & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite("Decrypt mit richtigem Pw" & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    $s = DeCrypt("615B5E420A7A5E535D424558550B0A0B664F14474C0A4351510B734553405252","4576567456z54hb45 u4 56 5")
    ConsoleWrite($s & @CRLF)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    $Pos = UBound($aArray)
    Do
    ReDim $aArray[UBound($aArray) * 2]

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    While UBound($aArray) >= $iLen
    _ArrayDelete($aArray, UBound($aArray) - 1)
    WEnd
    EndFunc ;==>_ArrayUp

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit]
  • Hi!


    Ihr seit mir ja welche ;) bin dabei!

    Hir meine beiden!
    VerEnd_S ist der Vernam-Algorithmus

    Beispiel:

    Spoiler anzeigen
    [autoit]

    $String = 'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.' & @CRLF & _
    'For better system integration you can consider to.For better system integration you can consider to.For better system integration you can consider to.W ü ö ä Ä Ü Ö ß'

    [/autoit] [autoit][/autoit] [autoit]

    Local $Password = 'Portal - .: autoit.de :. - Das deutsche AutoIt-Forum'

    [/autoit] [autoit][/autoit] [autoit]

    Local $Encod = EncodeString($String, $Password, 0)
    ConsoleWrite( '!EncodeString($String, $Password, 0) : ' & @CRLF & $Encod & @CRLF )

    [/autoit] [autoit][/autoit] [autoit]

    Local $Decod = DecodeString($Encod, $Password, 0)
    ConsoleWrite( @CRLF & '+DecodeString($String, $Password, 0) : ' & @CRLF & $Decod & @CRLF & @CRLF )

    [/autoit] [autoit][/autoit] [autoit]

    Local $Encod_2 = VerEnd_S($Decod, $Password)
    ConsoleWrite( '!Encod VerEnd_S($String, $Password, 0) : ' & @CRLF & $Encod_2 & @CRLF )

    [/autoit] [autoit][/autoit] [autoit]

    Local $Decod_2 = VerEnd_S($Encod_2, $Password)
    ConsoleWrite( @CRLF & @CRLF & '+Decod VerEnd_S($String, $Password, 0) : ' & @CRLF & $Decod_2 & @CRLF )

    [/autoit]

    Code:

    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    ;===================================================================================================================================#
    ;~ Function Name......: Encode_DecodeString($StEncode, Const $Stschluss, Const $En_De = 0, Const $Str_Dat = 0)
    ;
    ;~ Description........: Verschlüsselung vom Datein oder String´s
    ;
    ;~ $StEncode..........: Pfad&Datei o. String der o. die Verschlüsselt werden
    ;~ $Stschluss.........: Verslüsselung metode ( Passwor ) kann leer gelassen werden
    ;~ $En_De.............: Encoden = 0 o. Decoden = 1
    ;~ $Str_Dat...........: Ein String = 0 eine Datei = 1
    ;~ $Leer..............: Leerzeilen entfernen 0/nein(Standart) - 1/ja
    ;
    ;~ Return Value(s)....: Erfolg String mit der Verschlüsslung
    ;
    ;~ Error´s............; -1 $StEncode ist Leer
    ; -2 Datei konnte nicht gefunden werden
    ; -3 Datei konnte nicht Geöffnet werden
    ; -4 Keine String
    ;
    ;~ Author(s).........: Kleiner27 (http://www.autoit.de)
    ;====================================================================================================================================#
    Func Encode_DecodeString($StEncode, Const $Stschluss, Const $En_De = 0, Const $Str_Dat = 0, Const $Leer = 0)
    If Not $StEncode Then Return SetError(1, 0, -1)
    Local $F_Open, $A_Red, $Red_Line
    Switch $En_De
    Case 0
    Switch $Str_Dat
    Case 0
    If Not IsString($StEncode) Then Return SetError(1, 0, -4)
    Return EncodeString($StEncode, $Stschluss, $Str_Dat)
    Case 1
    If Not FileExists($StEncode) Then Return SetError(1, 0, -2)
    $F_Open = FileOpen($StEncode, 0)
    If ($F_Open = -1) Then Return SetError(1, 0, -3)
    While True
    $Red_Line = FileReadLine($F_Open)
    If @error Then ExitLoop
    If $Leer Then
    If $Red_Line Then $A_Red &= EncodeString($Red_Line, $Stschluss, $Str_Dat)
    Else
    $A_Red &= EncodeString($Red_Line, $Stschluss, $Str_Dat)
    EndIf
    WEnd
    FileClose($F_Open)
    Return $A_Red
    EndSwitch
    Case 1
    Switch $Str_Dat
    Case 0
    If Not IsString($StEncode) Then Return SetError(1, 0, -4)
    Return DecodeString($StEncode, $Stschluss, $Str_Dat)
    Case 1
    If Not FileExists($StEncode) Then Return SetError(1, 0, -2)
    $F_Open = FileOpen($StEncode, 0)
    If ($F_Open = -1) Then Return SetError(1, 0, -3)
    While True
    $Red_Line = FileReadLine($F_Open)
    If @error Then ExitLoop
    $A_Red &= DecodeString($Red_Line, $Stschluss, $Str_Dat)
    WEnd
    FileClose($F_Open)
    Return $A_Red
    EndSwitch
    EndSwitch
    EndFunc ;==>Encode_DecodeString

    [/autoit] [autoit][/autoit] [autoit]

    Func EncodeString($StEncode, $Stschluss, $Str_Dat)
    $StEncode = StringReplace(StringReplace(StringReplace(StringReplace(StringReplace(StringReplace(StringReplace($StEncode, 'Ü', '0xUx0', 0, 1), 'ü', '0xux0', 0, 1), 'Ä', '0xAx0', 0, 1), 'ä', '0xax0', 0, 1), 'Ö', '0xOx0', 0, 1), 'ö', '0xox0', 0, 1), 'ß', '0xsx0')
    Local $A_Enc = StringToASCIIArray($Stschluss)
    Local $UB = StringLen($StEncode)
    Local $UB_I = UBound($A_Enc)
    Local $Result
    If $Stschluss Then
    $A_Enc = StringToASCIIArray(_StringRepeat($Stschluss, Round($UB / StringLen($Stschluss)) + 1))
    Else
    ReDim $A_Enc[$UB + 1]
    For $i = $UB_I To $UB
    $A_Enc[$i] = Asc(Int(($UB - $i) + 1))
    Next
    EndIf
    For $i = 1 To $UB
    $Result &= Chr((Asc(StringRight($StEncode, ($UB - $i) + 1)) + $A_Enc[$i]))
    Next
    If $Str_Dat Then Return $Result & @CRLF
    Return $Result
    EndFunc ;==>EncodeString

    [/autoit] [autoit][/autoit] [autoit]

    Func DecodeString($StDecode, $Stschluss, $Str_Dat)
    If ($StDecode = -1) Then Return SetError(1, 0, -1)
    Local $A_Dec = StringToASCIIArray($Stschluss)
    Local $UB = StringLen($StDecode)
    Local $UB_I = UBound($A_Dec)
    Local $Result
    If $Stschluss Then
    $A_Dec = StringToASCIIArray(_StringRepeat($Stschluss, Round($UB / StringLen($Stschluss)) + 1))
    Else
    ReDim $A_Dec[$UB + 1]
    For $i = $UB_I To $UB
    $A_Dec[$i] = Asc(Int(($UB - $i) + 1))
    Next
    EndIf
    For $i = 1 To $UB
    $Result &= Chr((Asc(StringRight($StDecode, ($UB - $i) + 1)) - $A_Dec[$i]))
    Next
    $Result = StringReplace(StringReplace(StringReplace(StringReplace(StringReplace(StringReplace(StringReplace($Result, '0xUx0', 'Ü', 0, 1), '0xux0', 'ü', 0, 1), '0xAx0', 'Ä', 0, 1), '0xax0', 'ä', 0, 1), '0xOx0', 'Ö', 0, 1), '0xox0', 'ö', 0, 1), '0xsx0', 'ß')
    If $Str_Dat Then Return $Result & @CRLF
    Return $Result
    EndFunc ;==>DecodeString

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func EncDecString($StEncode, Const $Stschluss, Const $Str_Dat = 0)
    If Not $StEncode Then Return SetError(1, 0, -1)
    Switch $Str_Dat
    Case 0
    If FileExists($StEncode) Or Not IsString($StEncode) Then Return SetError(1, 0, -4)
    Return VerEnd_S($StEncode, $Stschluss)
    Case 1
    If Not FileExists($StEncode) Then Return SetError(1, 0, -2)
    Local $F_Open = FileOpen($StEncode, 0), $F_Rad
    If ($F_Open = -1) Then Return SetError(1, 0, -3)
    $F_Rad = FileRead($F_Open)
    FileClose($F_Open)
    Return VerEnd_S($F_Rad, $Stschluss)
    EndSwitch
    EndFunc ;==>EncDecString
    ;===================================================================================================================================#
    ;~ Function Name......: VerEnd_S($sEncDec, $sPass)
    ;~ Description........: Verschlüsselung von String´s
    ;
    ;~ $sEncDec...........: String der Verschlüsselt werden soll
    ;~ $sPass.............: Verslüsselung metode ( Passwor ) kann leer gelassen werden
    ;
    ;~ Return Value(s)....: Erfolg String mit der Verschlüsslung
    ;
    ;~ Author(s).........: Kleiner27 (http://www.autoit.de)
    ;====================================================================================================================================#
    Func VerEnd_S($sEncDec, $sPass)
    If Not $sPass Then $sPass = 'abcdefghijklmnopqrstuvwxyz'
    Local $iEncDec, $iPass, $UB, $UB_1, $UB_2
    $UB = StringLen($sEncDec)
    $UB_1 = StringLen($sPass)
    For $i = 1 To $UB_1
    $iPass &= '0D9158ac' & StringMid($sPass, $i, 1) & '09158Gac' & Asc(StringMid($sPass, $i, 1)) & '0X91ac58' & Chr(122 - $i)
    Next
    $sPass = ''
    $UB_2 = Round($UB / StringLen($iPass)) + 1
    For $i = 0 To $UB_2
    $sPass &= $iPass
    Next
    For $i = 1 To $UB
    $iEncDec &= Chr(BitXOR(Asc(StringMid($sEncDec, $i, 1)), Asc(StringMid($sPass, $i, 1))))
    Next
    Return $iEncDec
    EndFunc ;==>VerEnd_S

    [/autoit]


    LG Kleiner

  • Meine eingeschickte Version war nicht wirklcih 100% Fertig.
    Ich habe noch eine kleine Verbesserung vorgenommen. Ich weiß, dass das nicht mehr Zählen wird, aber so ists wenigstens fertig.
    (Die Verbesserung ist, dass der Hinzugefügte String zufällig generiert wird, und deshalb der Key, sowie die Verschlüsselung jedes Mal anderst ist. Dadurch wird es absolut unmöglich selbst durch ausprobieren hinter die Verschlüsselung zu kommen.)

    Ein Feature ist auch die Kompression. (wenn man einen Text eingibt der sich oft wiederholt z.B. 50Mal hintereinander den String 'Hallo, wie geht es dir ?')

    Spoiler anzeigen
    [autoit]

    ; von Marsi

    [/autoit] [autoit][/autoit] [autoit]

    Opt('GUICloseOnESC', 0)
    Opt('GUIOnEventMode', 1)

    [/autoit] [autoit][/autoit] [autoit]

    #Region GUI

    [/autoit] [autoit][/autoit] [autoit]

    Global $hProgress[2]

    [/autoit] [autoit][/autoit] [autoit]

    $hGUI = GUICreate('Crypter - Decrypter', 400, 400, _CenterX(400), _CenterY(400), -1, 0x00000080)
    GUISetOnEvent(-3, '_Exit')
    GUICtrlCreateLabel('Text:', 5, 10, 300, 17, 1)
    $hEdit_Text = GUICtrlCreateEdit('Text', 5, 30, 300, 300, 64, 0)
    GUICtrlCreateLabel('Key:', 5, 345, 300, 17, 1)
    $hEdit_Key = GUICtrlCreateEdit('Key', 5, 365, 300, 30, 64, 0)
    $hProgress[0] = GUICtrlCreateLabel('', 310, 65, 85, 17, 1)
    $hProgress[1] = GUICtrlCreateLabel('', 310, 85, 85, 17, 1)
    GUICtrlCreateButton('Crypt', 310, 5, 85, 25)
    GUICtrlSetOnEvent(-1, '__Crypt')
    GUICtrlCreateButton('Decrypt', 310, 35, 85, 25)
    GUICtrlSetOnEvent(-1, '__Decrypt')
    GUISetState(@SW_SHOW, $hGUI)

    [/autoit] [autoit][/autoit] [autoit]

    #EndRegion GUI

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(25)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func __Crypt()
    GUICtrlSetData($hProgress[0], 'Crypt...')
    Local $a = _Crypt(GUICtrlRead($hEdit_Text), $hEdit_Key)
    GUICtrlSetData($hEdit_Text, $a[0])
    GUICtrlSetData($hEdit_Key, $a[1])
    GUICtrlSetData($hProgress[0], '')
    GUICtrlSetData($hProgress[1], '')
    EndFunc ;==>__Crypt

    [/autoit] [autoit][/autoit] [autoit]

    Func __Decrypt()
    GUICtrlSetData($hProgress[0], 'Decrypt...')
    GUICtrlSetData($hProgress[1], 'Bitte Warten')
    Local $a = _Decrypt(GUICtrlRead($hEdit_Text), GUICtrlRead($hEdit_Key))
    GUICtrlSetData($hEdit_Text, $a)
    GUICtrlSetData($hProgress[0], '')
    GUICtrlSetData($hProgress[1], '')
    EndFunc ;==>__Decrypt

    [/autoit] [autoit][/autoit] [autoit]

    #Region Crypt

    [/autoit] [autoit][/autoit] [autoit]

    Func _Crypt($sText, $hLabel_PW)
    ;~ $sText = StringTrimLeft(StringToBinary($sText & 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'), 2)
    $sText = StringTrimLeft(StringToBinary($sText & _RandomString(62)), 2)
    $sText = _Bin($sText)

    [/autoit] [autoit][/autoit] [autoit]

    Local $ZeichenVorrat[120] = ['À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','ø','ù','ú','û','ü','ý','þ','ÿ','2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
    Local $ErsatzString = ''
    Local $Schluessel = ''
    For $i = 0 To UBound($ZeichenVorrat) - 1 Step 1
    GUICtrlSetData($hProgress[1], $i & ' / ' & 120)
    $ErsatzString = _Analyse($sText)
    $sText = StringReplace($sText, $ErsatzString, $ZeichenVorrat[$i], 0, 1)
    $Schluessel &= $ErsatzString
    Next
    $sPW = _Bin(StringTrimLeft(StringToBinary($Schluessel), 2))
    Local $Temp_PW = _PW_gen($sPW)
    $sPW = $Temp_PW[0]
    $Schluessel = $Temp_PW[1]
    Local $x[2] = [$sText & $Schluessel, $sPW]
    Return $x
    EndFunc ;==>_Crypt

    [/autoit] [autoit][/autoit] [autoit]

    Func _PW_gen($sPW)
    Local $PW = ''
    Local $Key = ''
    For $i = 0 To StringLen($sPW) / 8 - 1 Step 1
    $Key &= StringLeft($sPW, 7)
    $sPW = StringTrimLeft($sPW, 7)
    $PW &= StringLeft($sPW, 1)
    $sPW = StringTrimLeft($sPW, 1)
    Next
    $PW = _AntiZero($PW)
    $Key = _AntiZero($Key)
    Local $x[2] = [BinaryToString('0x' & _Hex($PW)), BinaryToString('0x' & _Hex($Key))]
    Return $x
    EndFunc ;==>_PW_gen

    [/autoit] [autoit][/autoit] [autoit]

    Func _AntiZero($sPW) ;Nur für _Bin wenn /6 aufgeht.
    Local $Temp_PW = ''
    For $i = 0 To StringLen($sPW) / 6 - 1 Step 1
    $Temp_PW &= '11' & StringLeft($sPW, 6)
    $sPW = StringTrimLeft($sPW, 6)
    Next
    Return $Temp_PW
    EndFunc ;==>_AntiZero

    [/autoit] [autoit][/autoit] [autoit]

    Func _RandomString($Laenge)
    If $Laenge > 62 Then $Laenge = 62
    Local $Temp_String = '', $Temp_Char = ''
    Local $ZeichenVorrat_RndStr[62] = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9']
    For $i = 0 To $Laenge-1
    $Temp_Char = $ZeichenVorrat_RndStr[Random(0,61,1)]
    If Not StringInStr($Temp_String, $Temp_Char, 1) Then
    $Temp_String &= $Temp_Char
    Else
    $i -= 1
    EndIf
    Next
    Return $Temp_String
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    #EndRegion Crypt

    [/autoit] [autoit][/autoit] [autoit]

    #Region Decrypt

    [/autoit] [autoit][/autoit] [autoit]

    Func _Decrypt($sText, $sPW)
    Local $ZeichenVorrat[120] = ['À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','ø','ù','ú','û','ü','ý','þ','ÿ','2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
    _ArrayReverse($ZeichenVorrat)
    $sKey = StringRight($sText, 280)
    $sText = StringTrimRight($sText, 280)
    $sKey = _PW_antiGen($sKey, $sPW)
    Local $Laenge = StringLen($sKey) / 2
    For $i = 0 To $Laenge - 1
    $sText = StringReplace($sText, $ZeichenVorrat[$i], StringRight($sKey, 2), 0, 1)
    $sKey = StringTrimRight($sKey, 2)
    Next
    $sText = _Hex($sText)
    $sText = StringTrimRight(BinaryToString('0x' & $sText), 62)
    If StringLeft($sText, 2) = '0x' Then Return
    Return $sText
    EndFunc ;==>_Decrypt

    [/autoit] [autoit][/autoit] [autoit]

    Func _PW_antiGen($sKey, $sPW)
    Local $Temp_Key = _Bin(StringTrimLeft(StringToBinary($sKey), 2))
    Local $Temp_PW = _Bin(StringTrimLeft(StringToBinary($sPW), 2))
    Local $Key = ''
    $Temp_PW = _AntiAntiZero($Temp_PW)
    $Temp_Key = _AntiAntiZero($Temp_Key)
    For $i = 0 To StringLen($Temp_PW) - 1 Step 1
    $Key &= StringLeft($Temp_Key, 7)
    $Temp_Key = StringTrimLeft($Temp_Key, 7)
    $Key &= StringLeft($Temp_PW, 1)
    $Temp_PW = StringTrimLeft($Temp_PW, 1)
    Next
    Return BinaryToString('0x' & _Hex($Key))
    EndFunc ;==>_PW_antiGen

    [/autoit] [autoit][/autoit] [autoit]

    Func _AntiAntiZero($sPW) ;Nur für _Bin wenn /6 aufgeht.
    Local $Temp_PW = ''
    For $i = 0 To StringLen($sPW) Step 1
    $sPW = StringTrimLeft($sPW, 2)
    $Temp_PW &= StringLeft($sPW, 6)
    $sPW = StringTrimLeft($sPW, 6)
    Next
    Return $Temp_PW
    EndFunc ;==>_AntiAntiZero

    [/autoit] [autoit][/autoit] [autoit]

    #EndRegion Decrypt

    [/autoit] [autoit][/autoit] [autoit]

    #Region Crypt/Decrypt - NebenFunktionen

    [/autoit] [autoit][/autoit] [autoit]

    Func _Bin($sText)
    $sText = StringReplace($sText, '0', '0000', 0, 1)
    $sText = StringReplace($sText, '1', '0001', 0, 1)
    $sText = StringReplace($sText, '2', '0010', 0, 1)
    $sText = StringReplace($sText, '3', '0011', 0, 1)
    $sText = StringReplace($sText, '4', '0100', 0, 1)
    $sText = StringReplace($sText, '5', '0101', 0, 1)
    $sText = StringReplace($sText, '6', '0110', 0, 1)
    $sText = StringReplace($sText, '7', '0111', 0, 1)
    $sText = StringReplace($sText, '8', '1000', 0, 1)
    $sText = StringReplace($sText, '9', '1001', 0, 1)
    $sText = StringReplace($sText, 'A', '1010', 0, 1)
    $sText = StringReplace($sText, 'B', '1011', 0, 1)
    $sText = StringReplace($sText, 'C', '1100', 0, 1)
    $sText = StringReplace($sText, 'D', '1101', 0, 1)
    $sText = StringReplace($sText, 'E', '1110', 0, 1)
    $sText = StringReplace($sText, 'F', '1111', 0, 1)
    Return $sText
    EndFunc ;==>_Bin

    [/autoit] [autoit][/autoit] [autoit]

    Func _Hex($sText) ; Bin Rein, Hex raus
    Local $a = StringLen($sText) / 4
    Local $ErsatzString = ''
    For $i = 0 To $a - 1 Step 1
    $ErsatzString &= _StringReplaceBinHex(StringLeft($sText, 4))
    $sText = StringTrimLeft($sText, 4)
    Next
    Return $ErsatzString
    EndFunc ;==>_Hex

    [/autoit] [autoit][/autoit] [autoit]

    Func _StringReplaceBinHex($a)
    Switch $a
    Case '1111'
    Return 'F'
    Case '1110'
    Return 'E'
    Case '1101'
    Return 'D'
    Case '1100'
    Return 'C'
    Case '1011'
    Return 'B'
    Case '1010'
    Return 'A'
    Case '1001'
    Return '9'
    Case '1000'
    Return '8'
    Case '0111'
    Return '7'
    Case '0110'
    Return '6'
    Case '0101'
    Return '5'
    Case '0100'
    Return '4'
    Case '0011'
    Return '3'
    Case '0010'
    Return '2'
    Case '0001'
    Return '1'
    Case '0000'
    Return '0'
    Case Else
    Return 'X'
    EndSwitch
    EndFunc ;==>_StringReplace

    [/autoit] [autoit][/autoit] [autoit]

    Func _Analyse($sData)
    Local $StringLaenge = StringLen($sData)
    Local $Top[2]
    Local $StringPart, $Replacements
    Local $Anzeige[2]
    Local $Genauigkeit = -1
    For $i = 0 To $StringLaenge - 1 Step 1
    Switch $StringLaenge
    Case 0 To 4000
    $Genauigkeit = -1
    Case 4001 To 8000
    $Genauigkeit = 1
    Case Else
    $Genauigkeit = 2
    EndSwitch
    $StringPart = StringMid($sData, $i, 2)
    StringReplace($sData, $StringPart, $StringPart, 0, 1)
    $Replacements = @extended
    If $Replacements >= $Top[0] Then
    $Top[0] = $Replacements
    $Top[1] = $StringPart
    EndIf
    If $Genauigkeit <> -1 Then
    $Anzeige[1] = Round($i / $StringLaenge, $Genauigkeit)
    If $Anzeige[0] <> $Anzeige[1] Then
    GUICtrlSetData($hProgress[0], $Anzeige[1] * 100 & ' %')
    $Anzeige[0] = $Anzeige[1]
    EndIf
    EndIf
    Next
    Return $Top[1]
    EndFunc ;==>_Analyse

    [/autoit] [autoit][/autoit] [autoit]

    #EndRegion Crypt/Decrypt - NebenFunktionen

    [/autoit] [autoit][/autoit] [autoit]

    #Region Sonstige Funktionen

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    Exit
    EndFunc ;==>_Exit

    [/autoit] [autoit][/autoit] [autoit]

    Func _CenterX($a)
    Return @DesktopWidth / 2 - $a / 2
    EndFunc ;==>_CenterX

    [/autoit] [autoit][/autoit] [autoit]

    Func _CenterY($a)
    Return @DesktopHeight / 2 - $a / 2
    EndFunc ;==>_CenterY

    [/autoit] [autoit][/autoit] [autoit]

    Func _ArrayReverse(ByRef $avArray, $iStart = 0, $iEnd = 0) ; Aus den Array-Funktionen geklaut :P
    If Not IsArray($avArray) Then Return SetError(1, 0, 0)
    If UBound($avArray, 0) <> 1 Then Return SetError(3, 0, 0)

    [/autoit] [autoit][/autoit] [autoit]

    Local $vTmp, $iUBound = UBound($avArray) - 1

    [/autoit] [autoit][/autoit] [autoit]

    ; Bounds checking
    If $iEnd < 1 Or $iEnd > $iUBound Then $iEnd = $iUBound
    If $iStart < 0 Then $iStart = 0
    If $iStart > $iEnd Then Return SetError(2, 0, 0)

    [/autoit] [autoit][/autoit] [autoit]

    ; Reverse
    For $i = $iStart To Int(($iStart + $iEnd - 1) / 2)
    $vTmp = $avArray[$i]
    $avArray[$i] = $avArray[$iEnd]
    $avArray[$iEnd] = $vTmp
    $iEnd -= 1
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Return 1
    EndFunc ;==>_ArrayReverse

    [/autoit] [autoit][/autoit] [autoit]

    #EndRegion Sonstige Funktionen

    [/autoit]

    /Edit: es gibt immernoch sachen zum verbessern fällt mir grade auf^^ aber da hab ich jetzt keine Lust dazu. es ist so gut, wie es ist. //

  • Hier ist mein Skript.
    Ich habe meinen Algorithmus selbst gemacht, ist auch nix besonderes :whistling:

    Haupt Code
    [autoit]

    #include <Array.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include "Letters.au3"
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #cs
    Fehlercodes:
    1: Der zu verschluesselnde String ist kein String oder ist leer.
    2: Die Anzahl der Schritte ist ungueltig.
    3: Das Passwort ist zu lang.

    [/autoit] [autoit][/autoit] [autoit]

    Fuer genauerere erklaerungen zu 1 & 2 siehe Funktionsbeschreibung in Letters.au3

    [/autoit] [autoit][/autoit] [autoit]

    Bemerkung: Beim verschluesseln werden Spezialzeichen nicht beachtet, damit sie im verschluesselten String
    keine Fehler erzeugen.
    #ce

    [/autoit] [autoit][/autoit] [autoit]

    $gui = GUICreate("PrideRage's Crypter", 564, 450, 192, 124)
    $input = GUICtrlCreateEdit("", 8, 32, 265, 409)
    GUICtrlSetData(-1, "String der verschlüsselt werden soll.")
    $output = GUICtrlCreateEdit("", 282, 31, 265, 409, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN,$WS_HSCROLL,$WS_VSCROLL))
    GUICtrlSetData(-1, "")
    $btn = GUICtrlCreateButton("Verschlüsseln", 144, 0, 105, 25, $WS_GROUP)
    $decrypt = GUICtrlCreateButton("Entschlüsseln", 256, 0, 97, 25, $WS_GROUP)
    $pw = GUICtrlCreateInput("Passwort", 360, 2, 185, 21)
    $infobtn = GUICtrlCreateButton("Info", 20, 2, 80, 20)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn
    $text = GUICtrlRead($input)
    $pass = GUICtrlRead($pw)
    _Crypt($text, $pass)
    If @error Then
    MsgBox(0, "Error", "Ein Fehler ist aufgetaucht, Fehlercode: " & @error)
    EndIf
    Case $decrypt
    $text1 = GUICtrlRead($input)
    $pass1 = GUICtrlRead($pw)
    _Decrypt($text1, $pass1)
    If @error Then
    MsgBox(0, "Error", "Ein Fehler ist aufgetaucht, Fehlercode: " & @error)
    EndIf
    Case $infobtn
    MsgBox(64, "Info", "Das Passwort darf nicht laenger als der zu verschluesselnde String sein." & _
    @CRLF & "Made by PrideRage!")
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Crypt($sText, $sPassword)
    If StringLen($sPassword) >= StringLen($sText) Then Return SetError(3, 3, 3)
    Local $str = _StringExplode($sText, ""), $spw = _StringExplode($sPassword, ""), $return, $len = StringLen($sPassword)
    For $i = 0 To UBound($spw) - 1
    _ArrayInsert($str, $i+$i+2, $spw[$i])
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $a = 0 To UBound($str) - 1
    $return &= _NextLetter($str[$a], $len)
    If @error Then Return @error
    Next

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetData($output, $return)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Decrypt($sText, $sPassword)
    If StringLen($sPassword) >= StringLen($sText) Then Return SetError(3, 3, 3)
    Local $str = _StringExplode($sText, ""), $spw = _StringExplode($sPassword, ""), $return, $len = StringLen($sPassword)

    [/autoit] [autoit][/autoit] [autoit]

    For $o = 0 To UBound($spw) - 1
    _ArrayDelete($str, $o+2)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $a = 0 To UBound($str) - 1
    $return &= _NextLetter($str[$a], $len*-1)
    If @error Then Return @error
    Next

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetData($output, $return)
    EndFunc

    [/autoit]
    Verschlüsselungscode
    [autoit]

    #include-once
    #include <String.au3>
    Global Const $Suffix[26] = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A"]

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNCTION# ======================================================================================
    ; Name ..........: _NextLetter()
    ; Description ...: Gibt den Buchstaben weg, der $iSteps von dem Ausgangsbuchstaben entfernt ist wieder.
    ; Syntax ........: _NextLetter($sLetter, $iSteps)
    ; Parameters ....: $sLetter -
    ; $iSteps - Wie weit der nächst gesuchte Buchstabe entfernt ist,
    ; falls Buchstaben vor dem Buchstaben $sLetter gesucht werden, muss $iSteps eine
    ; negative Zahl sein.
    ; Return values .: Erfolg - Der nächste Buchstabe
    ; Fehler - @error = 1: $sLetter ist kein String oder hat keinen Inhalt
    ; @error = 2: $iSteps ist keine Zahl
    ; Author ........: PrideRage
    ; Example .......: Yes
    ; #include "Letters.au3"
    ; MsgBox(0, "Buchstabe", "Der Buchstabe nach d ist " & _NextLetter("d", 1))
    ; MsgBox(0, "Buchstabe", "2 Buchstaben nach a ist " & _NextLetter("a", 2))
    ; =================================================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Func _NextLetter($sLetter, $iSteps)
    If Not IsString($sLetter) Or $sLetter = "" Then Return SetError(1, 1, 1)
    If Not IsNumber($iSteps) Then Return SetError(2, 2, 2)
    Local $ltr = _StringExplode(_StringToHex($sLetter), ""), $counter = 0, $flag, $ret = 0, $rflag = 0
    If $ltr[0] < 4 Or $ltr[0] > 7 Then Return $sLetter

    [/autoit] [autoit][/autoit] [autoit]

    Switch $ltr[0]
    Case 4
    $flag = 4
    Case 5
    $flag = 5
    Case 6
    $flag = 6
    Case 7
    $flag = 7
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    If $ltr[0] = 7 Or $ltr[0] = 5 Then $counter = 15

    [/autoit] [autoit][/autoit] [autoit]

    Do
    StringCompare($ltr[1], $Suffix[$counter])
    $counter += 1
    Until StringCompare($ltr[1], $Suffix[$counter-1]) = 0

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $counter - 1 + $iSteps >= 26 Then
    $ret = ($counter-1+$iSteps)-26
    $rflag = 1
    $counter = $ret
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $counter - 1 + $iSteps < 0 Then
    $ret = ($counter-1+$iSteps)+26
    $rflag = 1
    $counter = $ret
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Switch $rflag
    Case 1
    If $counter < 15 And $flag = 5 Then $ltr[0] -= 1
    If $counter >= 16 And $flag = 4 Then $ltr[0] += 1
    If $counter < 15 And $flag = 7 Then $ltr[0] -= 1
    If $counter >= 16 And $flag = 6 Then $ltr[0] += 1
    Case Else
    If $counter - 1 + $iSteps < 15 And $flag = 5 Then $ltr[0] -= 1
    If $counter - 1 + $iSteps >= 16 And $flag = 4 Then $ltr[0] += 1
    If $counter - 1 + $iSteps < 15 And $flag = 7 Then $ltr[0] -= 1
    If $counter - 1 + $iSteps >= 16 And $flag = 6 Then $ltr[0] += 1
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $rflag = 0 Then
    Local $suf = $Suffix[$counter - 1 + $iSteps]
    ElseIf $rflag = 1 Then
    Local $suf = $Suffix[$counter]
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Return _HexToString($ltr[0] & $suf)
    EndFunc

    [/autoit]

    Den Verschlüsselungscode als Letters.au3 speichern.

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • Leider nein, L3viathan hatte ja bereits angekündigt, dass es länger dauern wird. Das Problem ist ja von ihm unter Talk angekündigt worden. Derweil bleibt nur Abwarten und Tee trin... Quatsch, den nächten µitLight machen! :D

  • Hallo allerseits!

    Danke hervorragender Arbeit von L3viathan in Form von Awards und Vorbereitungen und von Schnitzel in Form von Cokorrektur, darf ich euch heute, auch im Namen dieser Beiden, das Ergebnis präsentieren.

    Ich gebe hier nur die allgemeine Zusammenfassung bekannt. Genauere Infos findet ihr in der Auswertung.txt des Archivs. Zunächst aber: Zur Auswertung der Performance wurde eine 25.000 Zeichen lange Zeichenkette verschlüsselt und entschlüsselt und jeweils die Zeit gemessen. Bei Ansehen der Ergebnisse werdet ihr sicher merken: Hier sind die Grenzen von AutoIt eigentlich schon erreicht. Es ist teilweise quälend langsam, mehrere Skripts mussten wir abbrechen, da die Laufzeiten mörderisch waren.

    Nun fasse ich mich aber kurz. Den eingeschleusten Text findet ihr in der Testtext.txt.

    In diesem Beitrag nur die Skripts, im nächsten die einzelnen Awards!

    Viele Grüße aus dem Pott (auch im Namen der restlichen Jury),
    Matthias

  • So, in der Gesamtwertung dürfen wir folgende Preise verleihen. Des weiteren danke ich erneut L3viathan für die genialen Awards!

    Aquaplant erhält den Preis für Funktionalität. Obwohl das Entschlüsseln einen stark veränderten Text ergibt, sind viele Parameter zum Erstellen des Textes zur Verfügung gestellt.
    autoit.de/wcf/attachment/11360/

    Kleiner ultra schnelle Skripte geschrieben. Eine Sekunde dauerte das Ko- und Dekodieren jeweils! Alle Achtung, dafür gibt es den Preis für Performance:
    autoit.de/wcf/attachment/11361/

    SlowlyDead überzeugte, obwohl das Entschlüsseln nicht richtig funktioniert hatte, vermutlich aus Zeitgründen, mit dem verschlüsselten Text. Wirre Zeichenkombinationen sorgten für den Preis für Sicherheit:
    autoit.de/wcf/attachment/11362/

    Der Rest muss leider auf Teilnehmer vertröstet werden, wobei uns die Bewertung echt schwer fiel. Z.B. PrideRages Vigenère-Verschlüsselung oder die angewandte Cäsar-Verschlüsselung, die auf robusten Prinzipien aufbauen, waren haarscharf am Sieg vorbei gezogen.

    Ich bin überrascht, dass jemand überhaupt auf solche Ideen kommt - hier war viel Fantasie im Spiel!

    Wir wünschen allen herzlichen Glückwunsch und würden uns über eine Teilnahme beim nächsten Wettbewerb freuen!

    Viele Grüße,
    Matthias

  • Hallo,

    ...

    Einmal editiert, zuletzt von Großvater (28. September 2010 um 07:24) aus folgendem Grund: *Unnützes Großvatergesabbel, er hatte wohl wieder mit Blähungen zu kämpfen*

  • Hi!

    Zweiter vielen dank für die blumen!
    Wie vieleicht schon mitbekommen mir geht es vor alle dem um die geschwindikeit bei fast allem was ich in autoit mache ;) .
    Ich habe die Vernam Verschlüsselung soweit ausgereitzt das 2,5 MB in ~30 sec. möglich sind :D


    LG Kleiner

  • Soviel zu Geschwindigkeit:
    Meins wurde nach 1h abgebrochen xDD

    Aber Sicher ist es auch. !!
    (Man kann ja auch einen schnelleren PC oder kleinere Texte Verwenden)

    mfg
    Mars(i)

  • Liebe Gemeinde,

    während der Korrekturen ist ein Skript bei uns untergegangen, das von Großvater stammt. Zunächst entschuldigen wir uns vielmals - das ist natürlich recht peinlich und sollte nicht passieren. :rolleyes:

    Aber nun zur Nominierung. Folgende Daten wurden ermittelt:

    Die erwünschte Performance, die du angekündigt hattest, kann ich leider nicht bestätigen. Wahrscheinlich hast du aber die Ressorucen überschätzt. Es ist wie gesagt ein Netbook gewesen. Das ist auch beabsichtigt gewsen: Gerade bei solchen Skripts ist die Performance enorm wichtig!

    Und hiermit darf ich dich für die - bisher unverliehene - Kategorie "Kompaktheit" nominieren!
    autoit.de/wcf/attachment/11630/

    Ich entschuldige mich erneut für den Fehler, der passiert ist und gratuliere recht herzlich!

    Viele Grüße,
    Matthias

  • Guten Tag,

    zuerst einmal möchte ich mich für die Nachnominierung bedanken. Ich hatte mein Skript ja eben nicht auf dem vorgesehenen Weg und auch erst recht spät eingestellt, sodass ich mich mit der Nichtteilnahme abgefunden hatte. ;)

    Zur Performance habe ich ja bereits in meinem Anmeldepost gesagt, dass sie mich nicht begeistert. Ich habe allerdings noch mal mit einem für heutige Verhältnisse nicht gerade berauschendem System getestet (XPSP3, Athlon X2 2 GHz, 1GB RAM) und kann die im Wettbewerb ermittelten Differenzen nicht annähernd nachvollziehen. Einserseits beträgt die von mir im Skript ermittelte Zeit in keinem Fall mehr als das Doppelte von Kleiners Skripten, andererseits bleibt die Differenz zwischen Ver- und Entschlüsseln im Rahmen von max. 10 Prozent. Da muss das Atömchen mit den von mir verwendeten Befehlen wohl besondere Schwierigkeiten haben.

    Ich habe auch noch mal versucht herauszubekommen, wo die Zeit bleibt, und siehe da, sie verkriecht sich zu einem erheblichen Teil in den Statements, die den Schlüssel "rotieren". Das erhöht ja durchaus die Sicherheit der Verschlüsselung, weil die Struktur der Ausgangsdatei zusätzlich verschleiert wird. Bisher dachte ich immer, dass die Verarbeitung von Zeichenketten für einen X86-Prozessor keine Herausforderung darstellt. Kennt jemand eine schnellere Möglichkeit für die Umsetzung der Schlüsselrotation in AutoIt?

  • Hallo Großvater,

    leider scheint es so zu sein, dass jeder PC die Algorithmen anders "ausführt". Ich habe zu diesem Zweck die Algorithmen normalerweise (außer bei Abbruch, da das Skript zu lange gebraucht hat). Deshalb testen wir seit Neuem immer auf mehreren PCs, auch in 64Bit.

    Gruß,
    Matthias