Ich wollte mal ein kleines Verschlüsselungstool auf Basis der, bereits in AutoIt integrierten, "_StringEncrypt" - Funktion schreiben.
Die verschlüsseln/entschlüsseln-Auswahl soll mithilfe einer RadioBox getätigt werden. Ich habe jedoch Probleme mit der Assoziierung und finde einfach nicht den Fehler. Natürlich bin ich auch für Verbesserungsvorschläge offen.
Spoiler anzeigen
[autoit]
#include
#include
#include
Opt( "TrayIconHide", 1)
_Main()
Func _Main()
Local $VerschID, $EntschID, $msg
Opt( "TrayIconHide", 1)
$WinMain = GUICreate ( "Kizzys Encryption/Decryption Tool", 490, 420)
$EditText = GuiCtrlCreateEdit('Bitte geben Sie Ihren zu verschlüsselnden Text ein.',5,5,380,350)
$InputPass = GuiCtrlCreateInput('',5,360,100,20, 0x21)
$InputLevel = GuiCtrlCreateInput("5", 110, 360, 52,20)
$StartButton = GUICtrlCreateButton ( "Start", 167, 360, 220, 35)
GUICtrlCreateLabel ( "Level", 122, 382)
GUICtrlCreateLabel ( "Passwort", 32, 382)
$filemenu = GuiCtrlCreateMenu ("Datei")
$exititem = GuiCtrlCreateMenuitem ("Programm beenden",$filemenu,3)
$helpmenu = GuiCtrlCreateMenu ("?")
$hilfe = GuiCtrlCreateMenuitem ("Hilfe",$helpmenu)
$aboutitem = GuiCtrlCreateMenuitem ("über",$helpmenu)
$open=GUICtrlCreateMenuItem ( "Datei öffnen...", $filemenu,0)
$save=GUICtrlCreateMenuItem ("Datei sichern unter...", $filemenu,1)
GuiCtrlCreateGroup("Modus", 395, 5, 90, 65)
$VerschID = GuiCtrlCreateRadio("verschlüsseln", 400, 20, 80);ID 17
GuiCtrlSetState(17, $GUI_CHECKED)
$EntschID = GuiCtrlCreateRadio("entschlüsseln", 400, 45, 80);ID 18
GUICtrlCreateGroup ("",-99,-99,1,1) ;close group
GuiSetState()
While 1
$msg = GUIGetMsg()
Select
Case $MSG = $GUI_EVENT_CLOSE
Exit
Case $msg = $aboutitem
Msgbox(64,"über","Kizzys Encryption/Decryption Tool - RC4 Text-En-/Decrypter Version: 2.0" &@CRLF&@CRLF&@CRLF& "Copyright: ©2010-2020, Biermännsche PC-Manufakturen/Keziah Biermann" &@CRLF&@CRLF& "E-Mail: biermaennsche.pc.manufakturen@googlemail.com")
Case $msg = $Hilfe
MsgBox (0, "Hilfe", "Passwort: Das Passwort mit dem der Text Verschlüsselt wurde." & @CRLF & @CRLF & "Level: Das Level mit dem der Text verschlüsselt wurde. Das bei der Verschlüsselung verwandte Level muss auch zur Entschlüsselung verwendet werden. Wenn Sie mehr als 30.000 Zeichen entschlüsseln wollen, nutzen Sie bitte die ""Datei öffnen...""-Funktion im Datei-Menü.")
Case GUICtrlRead($VerschID) = $GUI_CHECKED
Case $msg = $open
$OpenExplorer = FileOpenDialog ("Datei öffnen...", @MyDocumentsDir, "Einfaches Textdokument (*.txt)",1)
$EncryptString = FileRead ( $OpenExplorer )
GUICtrlSetData ( $EditText, ""&$EncryptString )
Case $msg = $exititem
ExitLoop
Case $msg = $StartButton
;~~
GuiCtrlSetState( $EditText,$GUI_DISABLE)
GUICtrlSetState($InputPass,$GUI_DISABLE )
GUICtrlSetState($InputLevel,$GUI_DISABLE )
GUICtrlSetState($StartButton,$GUI_DISABLE )
GUICtrlSetState($filemenu,$GUI_DISABLE )
GUICtrlSetState( $helpmenu,$GUI_DISABLE)
; Stops you from changing anything
;~~
$string = GuiCtrlRead($EditText)
; Saves the editbox for later
;~~
GUICtrlSetData($EditText,'Bitte warten Sie, während Ihr verschlüsselter Text mit Ihrem Passwort '&@CRLF&'und RC4 verschlüsselt wird.')
; Friendly message
;~~
GuiCtrlSetData($EditText,_StringEncrypt(1,$string,GuiCtrlRead($InputPass),GuiCtrlRead($InputLevel)))
; Calls the encryption. Sets the data of editbox with the encrypted string
;~~
GuiCtrlSetState( $EditText,$GUI_ENABLE)
GUICtrlSetState($InputPass,$GUI_ENABLE )
GUICtrlSetState($InputLevel,$GUI_ENABLE )
GUICtrlSetState($StartButton,$GUI_ENABLE )
GUICtrlSetState($filemenu,$GUI_ENABLE )
GUICtrlSetState( $helpmenu,$GUI_ENABLE)
; This turns the window back on
Case $msg = $save
$SaveExplorer = FileSaveDialog ("Datei sichern unter...", @MyDocumentsDir, "RC4-verschlüsselter Text (.cpt)", 16)
FileDelete ( $SaveExplorer )
_FileCreate ( $SaveExplorer&".cpt" )
$SaveString = GUICtrlRead ( $EditText )
$FileToSave=FileOpen ($SaveExplorer&".cpt",2)
FileWrite ( $FileToSave, ""&$SaveString )
FileClose ($FileToSave)
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Exit
Case GUICtrlRead($EntschID) = $GUI_CHECKED
Case $msg = $open
$OpenExplorer = FileOpenDialog ("Datei öffnen...", @MyDocumentsDir, "RC4-verschlüsselter Text (*.cpt), (*.txt)", 1)
$DecryptString = FileRead ( $OpenExplorer )
GUICtrlSetData ( $EditText, ""&$DecryptString )
Case $msg = $exititem
ExitLoop
Case $msg = $StartButton
;~~
GuiCtrlSetState( $EditText,$GUI_DISABLE)
GUICtrlSetState($InputPass,$GUI_DISABLE )
GUICtrlSetState($InputLevel,$GUI_DISABLE )
GUICtrlSetState($StartButton,$GUI_DISABLE )
GUICtrlSetState($filemenu,$GUI_DISABLE )
GUICtrlSetState( $helpmenu,$GUI_DISABLE)
; Stops you from changing anything
;~~
$string = GuiCtrlRead($EditText)
; Saves the editbox for later
;~~
GUICtrlSetData($EditText,'Bitte warten Sie, während Ihr verschlüsselter Text mit Ihrem Passwort '&@CRLF&'und RC4 entschlüsselt wird.')
; Friendly message
;~~
GuiCtrlSetData($EditText,_StringEncrypt(0,$string,GuiCtrlRead($InputPass),GuiCtrlRead($InputLevel)))
; Calls the encryption. Sets the data of editbox with the encrypted string
;~~
GuiCtrlSetState( $EditText,$GUI_ENABLE)
GUICtrlSetState($InputPass,$GUI_ENABLE )
GUICtrlSetState($InputLevel,$GUI_ENABLE )
GUICtrlSetState($StartButton,$GUI_ENABLE )
GUICtrlSetState($filemenu,$GUI_ENABLE )
GUICtrlSetState( $helpmenu,$GUI_ENABLE)
; This turns the window back on
Case $msg = $save
$SaveExplorer = FileSaveDialog ("Datei sichern unter...", @MyDocumentsDir, "Einfaches Textdokument (.txt)", 16)
FileDelete ( $SaveExplorer )
_FileCreate ( $SaveExplorer&".txt" )
$SaveString = GUICtrlRead ( $EditText )
$FileToSave=FileOpen ($SaveExplorer&".txt",2)
FileWrite ( $FileToSave, ""&$SaveString )
FileClose ($FileToSave)
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Exit
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $GUI_EVENT_CLOSE
EndSelect
WEnd
EndFunc ;==>_Main/autoit]
P. S. : Da ich Anfänger bin, bitte ich um eine verständliche Schilderung meines Fehlers!!! Ach ja... Übertreiben ist nicht notwendig.
P. P. S. : Ich bemerkte gerade, dass leider das Layout des *.au3-Scripts nicht übernommen wurde. Und Weiterverwendung ist nur dann erlaubt, wenn ich angemessen darüber informiert werde und mein Name (Keziah Biermann) im "Über" erscheint. Die Infos bitte an: "biermaennsche.pc.manufakturen@googlemail.com".