Hallo, ich will meine alte Textverschlüsselung mit "Crypt.au3" updaten. Den größten Teil hab' ich schon fertig.
Ich habe aber ein Problem mit dem entschlüsseln. Der Quelltext ist:
Spoiler anzeigen
#cs************************************************************************
***************************************************************************
**** ****
**** Name: Kizzys Encryption/Decryption Tool ****
**** Funktion: Textver-/ entschl�sselung auf Basis von RC4 ****
**** Autor: Bierm�nnsche PC-Manufakturen/Keziah Biermann ****
**** Mit freundlicher Unterst�tzung von: Cartan 12 & name 22 ****
**** ****
***************************************************************************
#ce************************************************************************
#include <GUIConstantsEx.au3>
#include <string.au3>
#include <file.au3>
#include <INet.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
;#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Crypt.au3>
Opt( "TrayIconHide", 1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]_Main()
Func _Main()
Local $VerschID, $EntschID, $msg, $option = 0
$WinMain = GUICreate ( "Kizzys Encryption/Decryption Tool", 490, 380, (-1),(-1), (-1))
;GUICtrlCreatePic ("Hintergrund.jpeg", 0, 0, 490, 380)
GUISetBkColor(0xBB0000)
$EditText = GuiCtrlCreateEdit('Bitte geben Sie Ihren zu verschl�sselnden Text ein.',5,5,380,310)
$InputPass = GuiCtrlCreateInput('',5,320,100,20, 0x21)
;$InputLevel = GuiCtrlCreateInput("5", 110, 320, 52,20, BitOR ($ES_NUMBER, $ES_CENTER))
$StartButton = GUICtrlCreateButton ( "Start", 267, 320, 120, 35)
GUICtrlCreateLabel ( "Algorythmus", 122, 342)
GUICtrlCreateLabel ( "Passwort", 32, 342)
;GUICtrlCreateLabel ("PasswHash", 200, 342)
$filemenu = GuiCtrlCreateMenu ("Datei")
$helpmenu = GuiCtrlCreateMenu ("Hilfe")
$hilfe = GuiCtrlCreateMenuitem ("Hilfe",$helpmenu)
GUICtrlCreateMenuItem("",$helpmenu)
$aboutitem = GuiCtrlCreateMenuitem ("�ber",$helpmenu)
$open=GUICtrlCreateMenuItem ( "�ffnen...", $filemenu,0)
$save=GUICtrlCreateMenuItem ("Sichern...", $filemenu,1)
GUICtrlCreateMenuItem ("",$filemenu,2)
$exititem = GUICtrlCreateMenuItem ("Programm beenden",$filemenu,3)
$ClearAll = GUICtrlCreateButton ( "Felder leeren", 395, 210, 90, 35, (-1), 0x2000)
$Feedback=GUICtrlCreateButton ( "Feedback", 395, 320, 90, 35)
$CryptAlgo=GUICtrlCreateCombo ("AES 128 Bit", 110, 320, 80, 16)
GUICtrlSetData ($CryptAlgo, "AES 192 Bit|AES 256 Bit|DES|Triple-DES|RC2|RC4")
;$HashAlgo=GUICtrlCreateCombo ("MD2", 200, 320, 56, 16)
;GUICtrlSetData ($HashAlgo, "MD4|MD5|SHA1")
$Open1=GUICtrlCreateButton ( "Datei �ffnen...", 395, 255, 90)
$Save1=GUICtrlCreateButton ( "Datei sichern...", 395, 285, 90)
GuiCtrlCreateGroup("Modus", 395, 5, 90, 65)
$VerschID = GuiCtrlCreateRadio("verschl�sseln", 400, 20, 80);ID 18
GuiCtrlSetState($VerschID, $GUI_CHECKED)
$EntschID = GuiCtrlCreateRadio("entschl�sseln", 400, 45, 80);ID 19
GUICtrlCreateGroup ("",-99,-99,1,1) ;close group
GuiSetState()
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]$msg = GUIGetMsg()
[/autoit] [autoit][/autoit] [autoit]Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $ClearAll
GUICtrlSetData ( $EditText, "")
GuiCtrlSetData ( $InputPass, "")
GUICtrlSetData ( $InputLevel, "")
Case $msg =$Feedback
_INetMail ( "biermaennsche.pc.manufakturen@googlemail.com", "KDE-Tool Feedback", "")
If @error = 1 Then
MsgBox (12, "Feedback Fehler", "Die Feedbackfunktion konnte nicht gestartet werden. Wenn Sie immer noch ein Feedback abgeben wollen, senden Sie bitte eine E-Mail, mit Betreff ""KDE-Tool Feedback"" an: ""biermaennsche.pc.manufakturen@googlemail.com""")
EndIf
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 (64, "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 $msg = $open Or $msg = $Open1
If $option = 0 Then
$OpenExplorer = FileOpenDialog ("Datei �ffnen...", @MyDocumentsDir, "Einfaches Textdokument (*.txt)",1)
$EncryptString = FileRead ( $OpenExplorer )
GUICtrlSetData ( $EditText, ""&$EncryptString )
EndIf
If $option = 1 Then
$OpenExplorer = FileOpenDialog ("Datei �ffnen...", @MyDocumentsDir, "RC4-verschl�sselter Text (*.txt), (*.cpt)",1)
$EncryptString = FileRead ( $OpenExplorer )
GUICtrlSetData ( $EditText, ""&$EncryptString )
EndIf
Case $msg = $exititem
ExitLoop
Case $msg = $StartButton
;~~
GuiCtrlSetState( $EditText,$GUI_DISABLE)
GUICtrlSetState($InputPass,$GUI_DISABLE )
GUICtrlSetState( $CryptAlgo,$GUI_DISABLE)
;GUICtrlSetState($HashAlgo, $GUI_DISABLE )
GUICtrlSetState( $StartButton,$GUI_DISABLE)
GUICtrlSetState($filemenu,$GUI_DISABLE )
GUICtrlSetState( $Open1,$GUI_DISABLE)
GUICtrlSetState($Save1, $GUI_DISABLE)
GUICtrlSetState( $VerschID, $GUI_DISABLE)
GUICtrlSetState($EntschID, $GUI_DISABLE )
GUICtrlSetState( $ClearAll, $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
If GUICtrlRead($CryptAlgo) = "AES 128 Bit" Then
$iALG_ID = 0x0000660e
EndIf
If GUICtrlRead($CryptAlgo) = "AES 192 Bit" Then
$iALG_ID = 0x0000660f
EndIf
If GUICtrlRead($CryptAlgo) = "AES 256 Bit" Then
$iALG_ID = 0x00006610
EndIf
If GUICtrlRead($CryptAlgo) = "DES" Then
$iALG_ID = 0x00006601
EndIf
If GUICtrlRead($CryptAlgo) = "Triple-DES" Then
$iALG_ID = 0x00006603
EndIf
If GUICtrlRead($CryptAlgo) = "RC2" Then
$iALG_ID = 0x00006602
EndIf
If GUICtrlRead($CryptAlgo) = "RC4" Then
$iALG_ID = 0x00006801
EndIf
#cs
If GUICtrlRead($HashAlgo) = "MD2" Then
$iHashALG_ID = 0x00008001
EndIf
If GUICtrlRead($HashAlgo) = "MD4" Then
$iHashALG_ID = 0x00008002
EndIf
If GUICtrlRead($HashAlgo) = "MD5" Then
$iHashALG_ID = 0x00008003
EndIf
If GUICtrlRead($HashAlgo) = "SHA1" Then
$iHashALG_ID = 0x00008004
EndIf
#ce
If $option = 0 Then
$vCryptKey=_Crypt_DeriveKey (GUICtrlRead($InputPass), GUICtrlRead($CryptAlgo), 0x00008003)
GuiCtrlSetData($EditText,_Crypt_EncryptData(GUICtrlRead($EditText), $vCryptKey, $iALG_ID))
_Crypt_DestroyKey($vCryptKey)
Else
$vCryptKey=_Crypt_DeriveKey (GUICtrlRead($InputPass), GUICtrlRead($CryptAlgo), 0x00008003)
GuiCtrlSetData($EditText,_Crypt_DecryptData(GUICtrlRead($EditText), $vCryptKey, $iALG_ID))
_Crypt_DestroyKey($vCryptKey)
EndIf
; Calls the encryption. Sets the data of editbox with the encrypted string
;~~
GuiCtrlSetState( $EditText,$GUI_ENABLE)
GUICtrlSetState($InputPass,$GUI_ENABLE )
;GUICtrlSetState($HashAlgo,$GUI_ENABLE )
GUICtrlSetState($CryptAlgo,$GUI_ENABLE)
GUICtrlSetState($StartButton,$GUI_ENABLE )
GUICtrlSetState($filemenu,$GUI_ENABLE )
GUICtrlSetState( $Open1,$GUI_ENABLE)
GUICtrlSetState($Save1, $GUI_ENABLE)
GUICtrlSetState($VerschID, $GUI_ENABLE)
GUICtrlSetState($EntschID, $GUI_ENABLE)
GUICtrlSetState($ClearAll, $GUI_ENABLE)
; This turns the window back on
Case $msg = $save Or $msg = $Save1
If $option = 0 Then
$SaveExplorer = FileSaveDialog ("Datei sichern unter...", @MyDocumentsDir, "RC4-verschl�sselter Text (.cpt)", 16)
If @error<>1 Then
FileDelete ( $SaveExplorer )
_FileCreate ( $SaveExplorer&".cpt" )
$SaveString = GUICtrlRead ( $EditText )
$FileToSave=FileOpen ($SaveExplorer&".cpt",2)
FileWrite ( $FileToSave, ""&$SaveString )
FileClose ($FileToSave)
EndIf
EndIf
If $option = 1 Then
$SaveExplorer = FileSaveDialog ("Datei sichern unter...", @MyDocumentsDir, "Einfaches Textdokument (.txt)", 16)
If @error <> 1 Then
FileDelete ( $SaveExplorer )
_FileCreate ( $SaveExplorer&".txt" )
$SaveString = GUICtrlRead ( $EditText )
$FileToSave=FileOpen ($SaveExplorer&".txt",2)
FileWrite ( $FileToSave, ""&$SaveString )
FileClose ($FileToSave)
EndIf
EndIf
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $VerschID
$option = 0
Case $msg = $EntschID
$option = 1
EndSelect
WEnd
EndFunc ;==>_Main
#cs
Mit frndl. Unterst�tzung von:
Cartan12,
name22
#ce
#include-once
Vielen Dank schon mal im Voraus.
P. S. : Die "?" einfach ignorieren, die stehen für die Umlaute.