Verschlüsselt eine Datei mit einem angegebenen Schlüssel und Algorithmus
#Include <Crypt.au3>
_Crypt_EncryptFile($sSourceFile, $sDestinationFile, $vCryptKey, $iALG_ID)
Parameter
| $sSourceFile | Datei die verschlüsselt werden soll |
| $sDestinationFile | Pfad und Name der Ausgabedatei |
| $vCryptKey | Passwort oder Handle zu einem Schlüssel, wenn das CALG_USERKAY Flag angegeben ist. |
| $iALG_ID | Der zu verwendende Algorithmus |
Rückgabewert
| Erfolg: | True |
| Setzt @error auf 0 | |
| Fehler: | Gibt -1 zurück und setzt @error: |
| 1 - Schlüssel konnte nicht erstellt werden | |
| 2 - Quelldatei konnte nicht geöffnet werden | |
| 3 - Zieldatei konnte nicht geöffnet werden | |
| 4 - Das letzte Stück konnte nicht verschlüsselt werden | |
| 5 - Das Stück konnte nicht verschlüsselt werden |
Bemerkungen
Die Zieldatei, könnte womöglich größer sein, als die Quelldatei, abhängig vom benutzen Algorithmus
Verwandte Funktionen
_Crypt_EncryptData, _Crypt_DecryptFile, _Crypt_DeriveKey
Beispiel
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Crypt.au3>
$hWnd = GUICreate("Datei-Verschlüsseler", 234, 178, 260, 238)
$InFileLabel = GUICtrlCreateLabel("Quelldatei", 8, 0, 47, 17)
$InFileInput = GUICtrlCreateInput("", 8, 16, 169, 21)
$OutFileLabel = GUICtrlCreateLabel("Ausgabedatei", 8, 48, 65, 17)
$OutFileInput = GUICtrlCreateInput("", 8, 64, 169, 21)
$InFileButton = GUICtrlCreateButton("...", 184, 16, 35, 20, $WS_GROUP)
$OutFileButton = GUICtrlCreateButton("...", 184, 64, 35, 20, $WS_GROUP)
$AlgoLabel = GUICtrlCreateLabel("Algorithmus", 8, 96, 55, 17)
$AlgoCombo = GUICtrlCreateCombo("RC4", 8, 112, 65, 25)
GUICtrlSetData(-1, "3DES|AES 128|AES 192|AES 256|DES|RC2")
$PasswordLabel = GUICtrlCreateLabel("Passwort", 88, 96, 50, 17)
$PasswordInput = GUICtrlCreateInput("", 88, 112, 129, 21)
$EncryptButton = GUICtrlCreateButton("Verschlüsseln", 8, 144, 211, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
Global $Increase=0
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $InFileButton
$file = FileOpenDialog("Quelldatei", "", "Alle Dateien (*.*;)")
If $file <> "" Then GUICtrlSetData($InFileInput, $file)
Case $OutFileButton
$file = FileSaveDialog("Ausgabedatei", "", "Jede Datei (*.*;)")
If $file <> "" Then GUICtrlSetData($OutFileInput, $file)
Case $EncryptButton
$infile = GUICtrlRead($InFileInput)
If Not FileExists($infile) Then
MsgBox(16, "Fehler", "Quelldatei existiert nicht!")
ContinueLoop
EndIf
$outfile=GUICtrlRead($OutFileInput)
If $outfile="" Then
MsgBox(16,"Fehler","Bitte eine Datei für die Ausgabe festlegen")
ContinueLoop
EndIf
$algo = 0
Switch GUICtrlRead($AlgoCombo)
Case "3DES"
$algo = $CALG_3DES
Case "DES"
$algo = $CALG_DES
Case "RC2"
$algo = $CALG_RC2
Case "RC4"
$algo = $CALG_RC4
Case "AES 128"
If @OSVersion = "WIN_2000" Then
MsgBox(16, "Fehler", "Dieser Algorithmus ist auf diesem System nicht verfügbar!")
ContinueLoop
EndIf
$algo = $CALG_AES_128
Case "AES 192"
If @OSVersion = "WIN_2000" Then
MsgBox(16, "Fehler", "Dieser Algorithmus ist auf diesem System nicht verfügbar!")
ContinueLoop
EndIf
$algo = $CALG_AES_192
Case "AES 256"
If @OSVersion = "WIN_2000" Then
MsgBox(16, "Fehler", "Dieser Algorithmus ist auf diesem System nicht verfügbar!")
ContinueLoop
EndIf
$algo = $CALG_AES_256
EndSwitch
$password=GUICtrlRead($PasswordInput)
If $password="" Then
MsgBox(16,"Fehler","Bitte ein Passwort eingeben!")
ContinueLoop
EndIf
AdlibRegister("Update",333)
$success=_Crypt_EncryptFile($infile,$outfile,$password,$algo)
If $success Then
MsgBox(0,"Erfolg","Aufgabe erfolgreich beendet")
Else
Switch @error
Case 1
MsgBox(16,"Fehler","Fehler beim erstellen des Schlüssels")
Case 2
MsgBox(16,"Fehler","Konnte Quelldatei nicht öffnen")
Case 3
MsgBox(16,"Fehler","Konnte Ausgabedatei nicht öffnen")
Case 4 or 5
MsgBox(16,"Fehler","Fehler bei der Verschlüsselung")
EndSwitch
EndIf
AdlibUnRegister("Update")
WinSetTitle($hWnd,"","Datei Verschlüsseler")
EndSwitch
WEnd
Func Update()
Switch Mod($Increase,4)
Case 0
WinSetTitle($hWnd,"","Führe Aufgabe durch... |")
Case 1
WinSetTitle($hWnd,"","Führe Aufgabe durch... /")
Case 2
WinSetTitle($hWnd,"","Führe Aufgabe durch... —")
Case 3
WinSetTitle($hWnd,"","Führe Aufgabe durch... \")
EndSwitch
$Increase+=1
EndFunc ;==>Update