Verschlüsselung funktioniert nicht richtig

  • Hallo bin gerade dabei eine Verschlüsselung zu schreiben die nur a-z und A-Z verschlüsselt ..

    habs so gemacht :
    a -> b b -> c etc.
    das z bleibt auch ein z (das soll so sein)

    wenn ich jetzt den text wieder entschlüssele geht das irgendwie net richtig...

    Spoiler anzeigen
    [autoit]

    $str = _Crypt("aZazQ§$=?", 1)
    MsgBox(0, "Verschlüsselt", $str)
    $str = _Crypt($str, 0)
    MsgBox(0, "Entschlüsselt", $str)

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

    Func _Crypt($sStr, $sStatus)
    Local $sNewStr
    For $i = 1 To StringLen($sStr)
    $sAsc = Asc(StringMid($sStr, $i, 1))
    If $sStatus = 1 Then
    For $ii = 65 To 89
    If $sAsc = $ii Then $sNewStr &= Chr($sAsc + 1)
    Next
    For $ii = 97 To 121
    If $sAsc = $ii Then $sNewStr &= Chr($sAsc + 1)
    Next
    If $sAsc = 90 Or $sAsc = 122 Then $sNewStr &= Chr($sAsc)
    If $sAsc >= 65 And $sAsc <= 90 Or $sAsc >= 97 And $sAsc <= 122 Then
    Else
    $sNewStr &= Chr($sAsc)
    EndIf
    ElseIf $sStatus = 0 Then
    For $ii = 65 To 89
    If $sAsc = $ii Then $sNewStr &= Chr($sAsc - 1)
    Next
    For $ii = 97 To 121
    If $sAsc = $ii Then $sNewStr &= Chr($sAsc - 1)
    Next
    If $sAsc = 90 Or $sAsc = 122 Then $sNewStr &= Chr($sAsc)
    If $sAsc >= 65 And $sAsc <= 90 Or $sAsc >= 97 And $sAsc <= 122 Then
    Else
    $sNewStr &= Chr($sAsc)
    EndIf
    EndIf
    Next
    Return $sNewStr
    EndFunc ;==>_Crypt

    [/autoit]

    Einmal editiert, zuletzt von Reaker (29. März 2010 um 15:19)

  • danke aber ich hab das jetzt so gemacht...

    waren auch noch paar andere kleine bugs drinne

    Spoiler anzeigen
    [autoit]

    $str = _Crypt("aZazQ§$=?", 1)
    MsgBox(0, "Verschlüsselt", $str)
    $str = _Crypt($str, 0)
    MsgBox(0, "Entschlüsselt", $str)

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

    Func _Crypt($sStr, $sStatus)
    Local $sNewStr
    For $i = 1 To StringLen($sStr)
    $sAsc = Asc(StringMid($sStr, $i, 1))
    If $sStatus = 1 Then
    For $ii = 65 To 89
    If $sAsc = $ii Then $sNewStr &= Chr($sAsc + 1)
    Next
    For $ii = 97 To 121
    If $sAsc = $ii Then $sNewStr &= Chr($sAsc + 1)
    Next
    If $sAsc = 90 Then
    $sNewStr &= Chr(65)
    EndIf
    If $sAsc = 122 Then
    $sNewStr &= Chr(97)
    EndIf
    If $sAsc >= 65 And $sAsc <= 90 Or $sAsc >= 97 And $sAsc <= 122 Then
    Else
    $sNewStr &= Chr($sAsc)
    EndIf
    ElseIf $sStatus = 0 Then
    For $ii = 66 To 90
    If $sAsc = $ii Then $sNewStr &= Chr($sAsc - 1)
    Next
    For $ii = 98 To 122
    If $sAsc = $ii Then $sNewStr &= Chr($sAsc - 1)
    Next
    If $sAsc = 65 Then
    $sNewStr &= Chr(90)
    EndIf
    If $sAsc = 97 Then
    $sNewStr &= Chr(122)
    EndIf
    If $sAsc >= 65 And $sAsc <= 90 Or $sAsc >= 97 And $sAsc <= 122 Then
    Else
    $sNewStr &= Chr($sAsc)
    EndIf
    EndIf
    Next
    Return $sNewStr
    EndFunc ;==>_Crypt

    [/autoit]