Chiffre un fichier avec la clé et l'algorithme spécifiés
#include <Crypt.au3>
_Crypt_EncryptFile ( $sSourceFile, $sDestinationFile, $vCryptKey, $iAlgID )
$sSourceFile | Fichier à traiter |
$sDestinationFile | Fichier où sera enregistré le fichier traité |
$vCryptKey | Mot de passe ou descripteur (handle) d'une clé si l'indicateur CALG_USERKEY est spécifié |
$iAlgID | L'algorithme à utiliser |
Succès: | Retourne True. |
Échec: | Retourne False et définit @error <> 0. |
@error: | 2 - Impossible d'ouvrir le fichier source 3 - Impossible d'ouvrir le fichier de destination 10+ - Impossible de créer la clé 400+ - Impossible de chiffrer la dernière partie 500+ - Impossible de chiffrer une partie 1000+ - Erreur dans _Crypt_Startup() |
Selon l'algorithme, le fichier de sortie peut être plus grand que le fichier d'entrée.
_Crypt_DecryptFile, _Crypt_DeriveKey, _Crypt_EncryptData
#include <ComboConstants.au3> #include <Crypt.au3> #include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <StringConstants.au3> Example() Func Example() Local $iAlgorithm = $CALG_RC4 Local $hGUI = GUICreate("Chiffreur de fichiers", 425, 100) Local $idSourceInput = GUICtrlCreateInput("", 5, 5, 200, 20) Local $idSourceBrowse = GUICtrlCreateButton("...", 210, 5, 35, 20) Local $idDestinationInput = GUICtrlCreateInput("", 5, 30, 200, 20) Local $idDestinationBrowse = GUICtrlCreateButton("...", 210, 30, 35, 20) GUICtrlCreateLabel("Mot de passe :", 5, 60, 200, 20) Local $idPasswordInput = GUICtrlCreateInput("", 5, 75, 200, 20) Local $idCombo = GUICtrlCreateCombo("", 210, 75, 100, 20, $CBS_DROPDOWNLIST) GUICtrlSetData($idCombo, "3DES (168bit)|AES (128bit)|AES (192bit)|AES (256bit)|DES (56bit)|RC2 (128bit)|RC4 (128bit)", "RC4 (128bit)") Local $idDecrypt = GUICtrlCreateButton("Déchiffrer", 355, 70, 65, 25) GUISetState(@SW_SHOW, $hGUI) Local $sDestinationRead = "", $sFilePath = "", $sPasswordRead = "", $sSourceRead = "" Local $iMsg Do $iMsg = GUIGetMsg() Switch $iMsg Case $idSourceBrowse $sFilePath = FileOpenDialog("Sélectionner un fichier à chiffrer.", "", "All files (*.*)") ; Sélectionne un fichier à chiffrer. If @error Then ContinueLoop EndIf GUICtrlSetData($idSourceInput, $sFilePath) ; Définit l'inputbox avec le chemin du fichier. Case $idDestinationBrowse $sFilePath = FileSaveDialog("Enregistrer le fichier sous...", "", "All files (*.*)") ; Sélectionner un fichier pour enregistrer les données chiffrées. If @error Then ContinueLoop EndIf GUICtrlSetData($idDestinationInput, $sFilePath) ; Définit l'inputbox avec le chemin du fichier. Case $idCombo ; Vérifie si le combobox est sélectionné et récupère le bon algorithme. Switch GUICtrlRead($idCombo) ; Lit la sélection du combobox. Case "3DES (168bit)" $iAlgorithm = $CALG_3DES Case "AES (128bit)" $iAlgorithm = $CALG_AES_128 Case "AES (192bit)" $iAlgorithm = $CALG_AES_192 Case "AES (256bit)" $iAlgorithm = $CALG_AES_256 Case "DES (56bit)" $iAlgorithm = $CALG_DES Case "RC2 (128bit)" $iAlgorithm = $CALG_RC2 Case "RC4 (128bit)" $iAlgorithm = $CALG_RC4 EndSwitch Case $idDecrypt $sSourceRead = GUICtrlRead($idSourceInput) ; Lit le chemin du fichier source dans l'input. $sDestinationRead = GUICtrlRead($idDestinationInput) ; Lit le chemin du fichier de destination dans l'input. $sPasswordRead = GUICtrlRead($idPasswordInput) ; Lit le mot de passe dans l'input. If StringStripWS($sSourceRead, $STR_STRIPALL) <> "" And _ StringStripWS($sDestinationRead, $STR_STRIPALL) <> "" And _ StringStripWS($sPasswordRead, $STR_STRIPALL) <> "" And _ FileExists($sSourceRead) Then ; Vérifie que le fichier à chiffrer existe et qu'un mot de passe a été défini. If _Crypt_DecryptFile($sSourceRead, $sDestinationRead, $sPasswordRead, $iAlgorithm) Then ; Chiffre le fichier. MsgBox($MB_SYSTEMMODAL, "Succès", "Opération réussie.") Else Switch @error Case 2 MsgBox($MB_SYSTEMMODAL, "Erreur", "Impossible d'ouvrir le fichier source.") Case 3 MsgBox($MB_SYSTEMMODAL, "Erreur", "Impossible d'ouvrir le fichier de destination.") Case 30 MsgBox($MB_SYSTEMMODAL, "Erreur", "Impossible de créer la clé.") Case 400 Or 500 MsgBox($MB_SYSTEMMODAL, "Erreur", "Erreur de déchiffrement.") Case Else MsgBox($MB_SYSTEMMODAL, "Error", "Unexpected @error = " & @error) EndSwitch EndIf Else MsgBox($MB_SYSTEMMODAL, "Erreur", "Veuillez vous assurer que l'information appropriée a été entrée correctement.") EndIf EndSwitch Until $iMsg = $GUI_EVENT_CLOSE GUIDelete($hGUI) ; Supprime la GUI précédente et tous ses contrôles. EndFunc ;==>Example