StartFingerprint()

Syntaxe

Resultat = StartFingerprint(#Fingerprint, Plugin [, Bits])
Description
Initialise le calcul d'une empreinte en plusieurs étapes.

Contrairement à la commande Fingerprint(), elle permet de calculer l'empreinte de grandes quantités de données sans avoir à charger le tout dans un tampon de mémoire continue.

Arguments

#Fingerprint L'identifiant de ce calcul de type 'checksum'.

#PB_Any peut est utilisé pour générer automatiquement ce nombre.
Plugin Le plugin à utiliser. Peut être l'une des valeurs suivantes:
  #PB_Cipher_CRC32: utilise l'algorithme CRC32. UseCRC32Fingerprint() doit être appelé avant pour utiliser le plugin.
  #PB_Cipher_MD5  : utilise l'algorithme MD5.   UseMD5Fingerprint() doit être appelé avant pour utiliser le plugin.
  #PB_Cipher_SHA1 : utilise l'algorithme SHA1.  UseSHA1Fingerprint() doit être appelé avant pour utiliser le plugin.
  #PB_Cipher_SHA2 : utilise l'algorithme SHA2.  UseSHA2Fingerprint() doit être appelé avant pour utiliser le plugin.
  #PB_Cipher_SHA3 : utilise l'algorithme SHA3.  UseSHA3Fingerprint() doit être appelé avant pour utiliser le plugin.
Bits (optionnel) Le nombre de bits à utiliser pour l'empreinte. Supporté seulement avec les plugins suivants:
  #PB_Cipher_SHA2 : peut être 224, 256 (par defaut), 384 ou 512.
  #PB_Cipher_SHA3 : peut être 224, 256 (par defaut), 384 or 512.

Valeur de retour

Renvoie la valeur #FingerPrint si #PB_Any a été utilisé pour ce paramètre.

Remarques

AddFingerprintBuffer() permet d'ajouter des blocs de données au calcul et FinishFingerprint() le terminera et renverra le résultat.

Exemple

  UseMD5Fingerprint()

  *Buffer = AllocateMemory(200) ; Prépare un tampon de données                 
  If *Buffer
    PokeS(*Buffer, "Le renard brun rapide saute sur le chien paresseux.", -1, #PB_Ascii)
    Taille = MemoryStringLength(*Buffer, #PB_Ascii)
    
    If StartFingerprint(0, #PB_Cipher_MD5)                ; démarre le calcul
      AddFingerprintBuffer(0, *Buffer, Taille/2)          ; calcule la partie 1
      AddFingerprintBuffer(0, *Buffer+Taille/2, Taille/2) ; calcule la partie 2
      
      MD5$ = FinishFingerprint(0)                ; termine le calcul
      Debug "MD5 checksum = " + MD5$
      
      MD5$ = Fingerprint(*Buffer, Length, #PB_Cipher_MD5)       ; comparaison avec le calcul en une seule étape
      Debug "MD5 checksum = " + MD5$      
    EndIf

    FreeMemory(*Buffer)
  EndIf

Voir aussi

Fingerprint(), FileFingerprint(), StringFingerprint()

OS Supportés

Tous

<- StartAESCipher() - Cipher Index - StringFingerprint() ->