Verschlüssler/Entschlüssler

  • Hey
    Ich habe einen kleinen Verschlüssler/Entschlüssler geschrieben, ich weiß das der Wettbewerb schon vorbei ist aber ich habs mir trotzdem mal vorgenommen und gestern noch zusammen gebastelt bekommen.
    Meine Frage ist jetzt aber: Er funktioniert zwar einwand frei, zwar sind groß buchstaben noch nicht alle eingetragen, aber gibt es eine einfachere möglichkeit die Array zu bilden? Jeden Buchstaben abtippen, einen neuen Code mit 13 Buchstaben finden, das dauert sehr lange uns sieht nicht sehr professionell aus :D Ich könnte natürlich auch immer &_ machen aber das wird mir zu unübersichtlich.
    Bitte guckt euch mal an und gebt ein kleines Feedback oder Verbesserungen würde mich sehr freuen.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>
    #include <Color.au3>
    #include <GDIPlus.au3>
    ;~ Opt("GUIOnEventMode", 1)
    ;~ OnAutoItExitRegister("__GDIPlus_Shutdown")

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

    Global $sABC[47][2] = [["a", "1329493329847"],["b", "2182358775187"],["c", "8728294834477"],["d", "7863873685182"],["e", "7865329725126"],["f", "6127635827612"],["g", "1872318726357"],["h", "8726382685295"],["i", "1897612374337"],["j", "8615523748346"],["k", "8762218729658"],["l", "9873623291875"],["m", "8872314987364"],["n", "8972636841444"],["o", "8978634829274"],["p", "9876236757677"],["q", "8598827463218"],["r", "9872617285384"],["s", "1287737128753"],["t", "8762638577627"],["u", "1222837788862"],["v", "1832791367722"],["w", "1289725534676"],["x", "7623783567686"],["y", "8723648237648"],["z", "8723473638473"],[" ", "9982768172365"],["1","8375623487623"],["2","8721342837827"],["3","3346677634767"],["4","8723347437743"],["5","8278378723719"],["6","2348762382728"],["7","2837629834628"],["8","2173876429837"],["9","1876287364213"],["0","8273736228763"],["!","9873689127631"],['"',"9728176213784"],["ß","9812871632874"],[".","1628362487364"],[",","8876132863428"],["-","3876284278432"], [":","3264128736514"],["ä","8756132745178"],["ö","6618263982736"],["ü","3128651265372"]]
    Global $nmsg

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

    $hGUI = GUICreate("Schlüssel GUI ©BadBunny :D", -1, -1)
    ;~ GUISetOnEvent(-3, "__GDIPlus_Shutdown")
    $gui_edit1 = GUICtrlCreateEdit("", 0, 0, 200, 200)
    $gui_edit2 = GUICtrlCreateEdit("", 200, 0, 200, 200)
    $Button = GUICtrlCreateButton("Verschlüsseln", 0, 360, 100, 40)
    $Button_veschluesseln = GUICtrlCreateButton("Entschlüsseln", 300, 360, 100, 40)
    GUICtrlSetBkColor($gui_edit2, 0xfff00f)
    GUISetState(@SW_SHOW)

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

    While 1
    $nmsg = GUIGetMsg($hGUI)
    Switch $nmsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button
    _crypt()
    Case $Button_veschluesseln
    _entcrypt()
    EndSwitch
    WEnd

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

    Func _crypt()

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

    $sCode = GUICtrlRead($gui_edit1)
    GUICtrlSetData($gui_edit2, "")
    If $sCode <> "" Then
    $sLen = StringLen($sCode)
    For $i = 1 To StringLen($sCode)
    $sMid = StringMid($sCode, $i, 1)
    For $o = 0 To UBound($sABC) - 1
    If $sMid = $sABC[$o][0] Then
    $s2Code = GUICtrlRead($gui_edit2)

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

    GUICtrlSetData($gui_edit2, $s2Code & $sABC[$o][1])
    EndIf
    Next
    Next
    EndIf

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

    EndFunc ;==>_crypt

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

    Func _entcrypt()

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

    $sCode = GUICtrlRead($gui_edit2)
    GUICtrlSetData($gui_edit1, "")
    If $sCode <> "" Then
    $sLen = StringLen($sCode)
    For $i = 1 To StringLen($sCode) Step 13
    $sMid = StringMid($sCode, $i, 13)
    For $o = 0 To UBound($sABC) - 1
    If $sMid = $sABC[$o][1] Then
    $s2Code = GUICtrlRead($gui_edit1)
    GUICtrlSetData($gui_edit1, $s2Code & $sABC[$o][0])
    EndIf
    Next
    Next
    EndIf
    EndFunc ;==>_entcrypt

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

    Func __GDIPlus_Shutdown()
    Exit
    EndFunc ;==>__GDIPlus_Shutdown

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

    ;Peter Kleissner

    [/autoit]


    ich habs mal mit großbuchstaben versucht... Ich bekomme beim entschlüsseln wenn das Verschlüsselte = M ist mM zurück... ich denke das liegt daran das er es als großes und kleines ausließt... weil das für ihn das gleich ist... Wie kann ich das ändern? Der neue Code ist dann:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>
    #include <Color.au3>
    #include <GDIPlus.au3>
    ;~ Opt("GUIOnEventMode", 1)
    ;~ OnAutoItExitRegister("__GDIPlus_Shutdown")

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

    Global $sABC[73][2] = [["a", "1329493329847"],["b", "2182358775187"],["c", "8728294834477"],["d", "7863873685182"],["e", "7865329725126"],["f", "6127635827612"],["g", "1872318726357"],["h", "8726382685295"],["i", "1897612374337"],["j", "8615523748346"],["k", "8762218729658"],["l", "9873623291875"],["m", "8872314987364"],["n", "8972636841444"],["o", "8978634829274"],["p", "9876236757677"],["q", "8598827463218"],["r", "9872617285384"],["s", "1287737128753"],["t", "8762638577627"],["u", "1222837788862"],["v", "1832791367722"],["w", "1289725534676"],["x", "7623783567686"],["y", "8723648237648"],["z", "8723473638473"],[" ", "9982768172365"],["1","8375623487623"],["2","8721342837827"],["3","3346677634767"],["4","8723347437743"],["5","8278378723719"],["6","2348762382728"],["7","2837629834628"],["8","2173876429837"],["9","1876287364213"],["0","8273736228763"],["!","9873689127631"],['"',"9728176213784"],["ß","9812871632874"],[".","1628362487364"],[",","8876132863428"],["-","3876284278432"], [":","3264128736514"],["ä","8756132745178"],["ö","6618263982736"],["ü","3128651265372"],["A", "1326483329847"],["B", "2182358775112"],["C", "8827298834477"],["D", "7863573665172"],["E", "7875329725126"],["F", "5187635827652"],["G", "1772318826359"],["H", "8826332685295"],["I", "1896612564337"],["J", "8617583798346"],["K", "8764218729698"],["L", "9879623211879"],["M", "8882319987964"],["N", "9342634841544"],["O", "1978674889274"],["P", "9856238757673"],["Q", "8528897483218"],["R", "9862616225384"],["S", "1257736128653"],["T", "8762838537657"],["U", "7232837278862"],["V", "6332599387782"],["W", "1589728534976"],["X", "9723788567682"],["Y", "9722748238648"],["Z", "8623475638873"]]
    Global $nmsg

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

    $hGUI = GUICreate("Schlüssel GUI ©BadBunny :D", -1, -1)
    ;~ GUISetOnEvent(-3, "__GDIPlus_Shutdown")
    $gui_edit1 = GUICtrlCreateEdit("", 0, 0, 200, 200)
    $gui_edit2 = GUICtrlCreateEdit("", 200, 0, 200, 200)
    $Button = GUICtrlCreateButton("Verschlüsseln", 0, 360, 100, 40)
    $Button_veschluesseln = GUICtrlCreateButton("Entschlüsseln", 300, 360, 100, 40)
    GUICtrlSetBkColor($gui_edit2, 0xfff00f)
    GUISetState(@SW_SHOW)

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

    While 1
    $nmsg = GUIGetMsg($hGUI)
    Switch $nmsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button
    _crypt()
    Case $Button_veschluesseln
    _entcrypt()
    EndSwitch
    WEnd

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

    Func _crypt()

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

    $sCode = GUICtrlRead($gui_edit1)
    GUICtrlSetData($gui_edit2, "")
    If $sCode <> "" Then
    $sLen = StringLen($sCode)
    For $i = 1 To StringLen($sCode)
    $sMid = StringMid($sCode, $i, 1)
    For $o = 0 To UBound($sABC) - 1
    If $sMid = $sABC[$o][0] Then
    $s2Code = GUICtrlRead($gui_edit2)

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

    GUICtrlSetData($gui_edit2, $s2Code & $sABC[$o][1])
    EndIf
    Next
    Next
    EndIf

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

    EndFunc ;==>_crypt

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

    Func _entcrypt()

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

    $sCode = GUICtrlRead($gui_edit2)
    GUICtrlSetData($gui_edit1, "")
    If $sCode <> "" Then
    $sLen = StringLen($sCode)
    For $i = 1 To StringLen($sCode) Step 13
    $sMid = StringMid($sCode, $i, 13)
    For $o = 0 To UBound($sABC) - 1
    If $sMid = $sABC[$o][1] Then
    $s2Code = GUICtrlRead($gui_edit1)
    GUICtrlSetData($gui_edit1, $s2Code & $sABC[$o][0])
    EndIf
    Next
    Next
    EndIf
    EndFunc ;==>_entcrypt

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

    Func __GDIPlus_Shutdown()
    Exit
    EndFunc ;==>__GDIPlus_Shutdown

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

    ;Peter Kleissner

    [/autoit]

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

    Einmal editiert, zuletzt von BadBunny (30. Oktober 2010 um 09:51)

  • Was meinst du genau damit? Kannst du pls ein Bsp. machen?
    Meinst du jetzt z.b. ein Input feld noch erstellt wo man das richtige Passwort eingeben muss? ohne das es nicht funzt?

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

  • Er meint das du den Klartext mit einem Passwort verschlüsseln sollst.

    Hier ist eine einfache Variante um einen String mit einem Passwort zu verschlüsseln (Passwort und Klartext müssten gleich lang sein hier)

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    $Klartext = "HalloWieGehts"
    $Passwort = "EigentlichGut"
    ;By Sprenger120
    $Klartext = StringToASCIIArray($Klartext)
    $Passwort = StringToASCIIArray($Passwort)

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

    For $x = 0 To UBound($Klartext)-1
    $Klartext[$x] += $Passwort[$x]
    Next

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

    $Verschluesselt = _ArrayToString($Klartext)
    ConsoleWrite("Verschlüsselt:" & $Verschluesselt & @CRLF)

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

    $Verschluesselt = StringSplit($Verschluesselt, "|", 2)

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

    For $x = 0 To UBound($Verschluesselt)-1
    $Verschluesselt[$x] -= $Passwort[$x]
    Next

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

    ConsoleWrite("Klartext:" & StringFromASCIIArray($Verschluesselt) & @CRLF)

    [/autoit]