CRC32Fingerprint()
Syntax
Ergebnis = CRC32Fingerprint(*Puffer, Groesse [, Anfangswert])Beschreibung
Führt auf dem angegebenen Speicherpuffer eine CRC32 Prüfsumme aus. CRC32 ist ein 32-Bit "Fingerabdruck" (englisch "Fingerprint"), der - da er leicht zu knacken ist - nicht für Passwort-Sicherung gedacht ist, sondern für die schnelle Prüfung der Datenintegrität.
Zum Beispiel haben ZIP-Dateien am Ende jeder Datei eine CRC32 Prüfsumme, um sicherzustellen, dass das Zip-Archiv nicht defekt ist. Der Hauptvorteil von CRC32 gegenüber MD5 oder anderen Hash-Algorithmen ist seine sehr hohe Geschwindigkeit.
Der optionale Parameter 'Anfangswert' kann verwendet werden, um die Prüfsumme eines vorherigen Puffers zu übergeben. Das Ergebnis wird dann die Prüfsumme beider Puffer sein, genauso wie wenn sie von einem zusammenhängenden Puffer berechnet worden wäre. Auf diesem Weg kann die Berechnung der Prüfsumme größerer Daten in eine Anzahl Berechnungen mit kleineren Puffern aufgesplittet werden.
Beispiel:
*Buffer = AllocateMemory(200) ; einen Puffer mit Daten präparieren If *Buffer PokeS(*Buffer, "The quick brown fox jumps over the lazy dog.") Length = MemoryStringLength(*Buffer) CRC32 = CRC32Fingerprint(*Buffer, Length) ; die Prüfsumme in einem Schritt berechnen Debug "CRC32 checksum = " + Str(CRC32) Part1 = CRC32Fingerprint(*Buffer, Length/2) ; die Prüfsumme in zwei Schritten berechnen CRC32 = CRC32Fingerprint(*Buffer+Length/2, Length/2, Part1) Debug "CRC32 checksum = " + Str(CRC32) FreeMemory(*Buffer) EndIf
Unterstützte OS
Alle