Hache le contenu d'un fichier avec l'algorithme spécifié
#include <Crypt.au3>
_Crypt_HashFile ( $sFilePath, $iAlgID )
$sFilePath | Chemin du fichier à hacher |
$iAlgID | ID de hashage à utiliser. Voir _Crypt_DeriveKey(). |
Succès: | Retourne le hachage du fichier binaire. |
Échec: | Définit @error <> 0. |
@error: | 1 - Impossible d'ouvrir le fichier 10+ - Impossible de hacher la dernière partie 100+ - Impossible d'obtenir la partie de hachage 1000+ Erreur dans _Crypt_Startup() |
#include <ComboConstants.au3> #include <Crypt.au3> #include <GUIConstantsEx.au3> #include <StringConstants.au3> Example() Func Example() Local $iAlgorithm = $CALG_SHA1 Local $hGUI = GUICreate("Hach File", 500, 100) Local $idInput = GUICtrlCreateInput(@ScriptFullPath, 5, 5, 200, 20) Local $idBrowse = GUICtrlCreateButton("...", 210, 5, 35, 20) Local $idCombo = GUICtrlCreateCombo("", 250, 5, 100, 20, $CBS_DROPDOWNLIST) GUICtrlSetData($idCombo, "MD2 (128bit)|MD4 (128bit)|MD5 (128bit)|SHA1 (160bit)|SHA_256 (256bit)|SHA_384 (384bit)|SHA_512 (512bit)", "SHA1 (160bit)") Local $idCalculate = GUICtrlCreateButton("Calculer", 400, 40, 65, 25) Local $idHashLabel = GUICtrlCreateEdit("Hash Digest)", 5, 45, 350, 40) GUISetState(@SW_SHOW, $hGUI) _Crypt_Startup() ; Exécute la bibliothèque crypt pour optimiser les performances. Local $dHash = 0, $sRead = "", $iMsg = 0 Do $iMsg = $GUIGetMsg() Switch $iMsg Case $idBrowse Local $sFilePath = FileOpenDialog("Ouvrir un fichier", "", "All files (*.*)") ; Sélectionne un fichier pour trouver le hachage. If @error Then ContinueLoop EndIf GUICtrlSetData($idInput, $sFilePath) ; Définit l'inputbox avec le chemin du fichier. GUICtrlSetData($idHashLabel, "Hash digest") ; Réinitialise le nom de la synthèse de hachage. 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 "MD2 (128bit)" $iAlgorithm = $CALG_MD2 Case "MD4 (128bit)" $iAlgorithm = $CALG_MD4 Case "MD5 (128bit)" $iAlgorithm = $CALG_MD5 Case "SHA1 (160bit)" $iAlgorithm = $CALG_SHA1 Case "SHA_256 (256bit)" $iAlgorithm = $CALG_SHA_256 Case "SHA_384 (384bit)" $iAlgorithm = $CALG_SHA_384 Case "SHA_512 (512bit)" $iAlgorithm = $CALG_SHA_512 EndSwitch Case $idCalculate $sRead = GUICtrlRead($idInput) If StringStripWS($sRead, $STR_STRIPALL) <> "" And FileExists($sRead) Then ; Vérifie que le fichier existe pour rechercher la synthèse de hachage. $dHash = _Crypt_HashFile($sRead, $iAlgorithm) ; Crée un hachage du fichier. GUICtrlSetData($idHashLabel, $dHash) ; Définit le nom de la synthèse de hachage avec les données de hachage. EndIf EndSwitch Until $iMsg = $GUI_EVENT_CLOSE GUIDelete($hGUI) ; Supprime la GUI précédente et tous ses contrôles. _Crypt_Shutdown() ; Arrête la bibliothèque crypt. EndFunc ;==>Example