CRC32Fingerprint()

Syntaxe

Resultat = CRC32Fingerprint(*Tampon, Taille, [ValeurInitiale])
Description
Calcul la somme de contrôle CRC32 correspondant au contenu d'un tampon.

Arguments

*Tampon Le tampon contenant les données.
Taille Taille du tampon.
ValeurInitiale (optionnel) Peut être utilisé pour transmettre la somme de contrôle d'un tampon précédent. Le résultat sera alors la somme de contrôle des deux tampons, comme si elle était calculée d'un tampon en continu. De cette façon, le calcul de la somme de contrôle d'une grande quantité de données peut être décomposé en un certain nombre de calculs utilisant des petits tampons.

Valeur de retour

Renvoie le 'checksum'.

Remarques

CRC32 est un codage 3 bits inadapté pour le stockage des mots de passe car il est facilement piratable, mais utilisable plutôt pour le contrôle rapide d'intégrité des données. Par exemple les fichiers zip utilisent un CRC32 à la fin de chaque fichier pour s'assurer que le zip n'est pas corrompu. L'avantage principal du CRC32 par rapport au MD5 ou à d'autres algorithmes de signature est sa rapidité d'exécution.

Exemple

  *MemoireID = AllocateMemory(500)    ; *MemoireID contient l'adresse de la zone mémoire.
  If *MemoireID
    PokeS(*MemoireID, "Cette chaîne est placée dans la zone mémoire")
    Taille = MemoryStringLength(*MemoireID)
 
    CRC32 = CRC32Fingerprint(*MemoireID, Taille) ; Calcul du checksum en 1 étape.
    Debug "CRC32 checksum = " + Str(CRC32)
    
    Part1 = CRC32Fingerprint(*MemoireID, Taille/2) ; Calcul le checksum en 2 étapes.
    CRC32 = CRC32Fingerprint(*MemoireID + Taille/2, Taille/2, Part1)
    Debug "CRC32 checksum = " + Str(CRC32)
  
    FreeMemory(*MemoireID)  ; La mémoire peut aussi être libérée automatiquement à la fin du programme.
  EndIf

Voir aussi

CRC32FileFingerprint(), MD5Fingerprint(), SHA1Fingerprint()

OS Supportés

Tous

<- CRC32FileFingerprint() - Cipher Index - CloseCryptRandom() ->