UDF > Crypt >


_Crypt_HashFile

Hache le contenu d'un fichier avec l'algorithme spécifié

#include <Crypt.au3>
_Crypt_HashFile ( $sFilePath, $iAlgID )

Paramètres

$sFilePath Chemin du fichier à hacher
$iAlgID ID de hashage à utiliser. Voir _Crypt_DeriveKey().

Valeur de retour

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()

En relation

_Crypt_HashData

Exemple

#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