StartFingerprint()
Syntax
Ergebnis = StartFingerprint(#Fingerprint, Plugin [, Bits [, HmacKey$ [, HmacKeyFormat]]])Beschreibung
Initialisiert die Berechnung einer Prüfsumme ("Fingerprint") in mehreren Schritten. Anders als die Fingerprint() Funktion ermöglicht dies die Berechnung der Prüfsumme von großen Daten, ohne die Notwendigkeit, diese komplett in einen zusammenhängenden Speicherpuffer zu laden.
Parameter
#Fingerprint Die Nummer ("Fingerprint" = "Fingerabdruck" in Deutsch), mit der bei späteren Aufrufen auf diese Prüfsummen-Berechnung verwiesen wird. #PB_Any kann verwendet werden, um diese Nummer automatisch zu generieren. Plugin Das zu verwendende Plugin. Dies kann einer der folgenden Werte sein: #PB_Cipher_CRC32: verwendet den CRC32 Algorithmus. UseCRC32Fingerprint() muss vorher aufgerufen werden, um dieses Plugin zu registrieren. #PB_Cipher_MD5 : verwendet den MD5 Algorithmus. UseMD5Fingerprint() muss vorher aufgerufen werden, um dieses Plugin zu registrieren. #PB_Cipher_SHA1 : verwendet den SHA1 Algorithmus. UseSHA1Fingerprint() muss vorher aufgerufen werden, um dieses Plugin zu registrieren. #PB_Cipher_SHA2 : verwendet den SHA2 Algorithmus. UseSHA2Fingerprint() muss vorher aufgerufen werden, um dieses Plugin zu registrieren. #PB_Cipher_SHA3 : verwendet den SHA3 Algorithmus. UseSHA3Fingerprint() muss vorher aufgerufen werden, um dieses Plugin zu registrieren.Das zu verwendende Plugin kann mit dem #PB_Cipher_HMAC Flag kombiniert werden, um einen HMAC (Hash-basierter Nachrichtenauthentifizierungscode, englisch "hash based message authentication code") anstelle eines regulären 'Fingerprints' zu berechnen. In diesem Fall wird zusätzlich der Parameter "HmacKey$" benötigt. Ein Beispiel für die Verwendung des HMAC-Flags finden Sie unter StringFingerprint().Bits (optional) Die für die Prüfsumme zu verwendende Anzahl Bits. Dies wird nur bei den folgenden Plugins unterstützt: #PB_Cipher_SHA2 : kann 224, 256 (Standard), 384 oder 512 lauten. #PB_Cipher_SHA3 : kann 224, 256 (Standard), 384 oder 512 lauten.HmacKey$ (optional) Der geheime Schlüssel, der bei der HMAC-Berechnung verwendet werden soll. Dieser Parameter wird nur verwendet, wenn #PB_Cipher_HMAC beim 'Plugin'-Parameter hinzugefügt wird. HmacKeyFormat (optional) Das für den HMAC-Schlüssel zu verwendende Stringformat. Dies kann einer der folgenden Werte sein: #PB_Ascii : kodiert den Schlüssel in ASCII #PB_UTF8 : kodiert den Schlüssel in UTF-8 (Standard). #PB_Unicode: kodiert den Schlüssel in Unicode
Rückgabewert
Gibt den #Fingerprint Wert zurück, wenn #PB_Any für diesen Parameter verwendet wurde.
Anmerkungen
AddFingerprintBuffer() kann verwendet werden, um Speicherblöcke zur Berechnung hinzuzufügen, und FinishFingerprint() zum Abschließen der Berechnung und Lesen der daraus resultierenden Prüfsumme (Hash).
Beispiel
UseMD5Fingerprint() *Buffer = AllocateMemory(200) ; einen Puffer mit Daten präparieren If *Buffer PokeS(*Buffer, "The quick brown fox jumps over the lazy dog.", -1, #PB_Ascii) Length = MemoryStringLength(*Buffer, #PB_Ascii) If StartFingerprint(0, #PB_Cipher_MD5) ; die Berechnung starten AddFingerprintBuffer(0, *Buffer, Length/2) ; Teil 1 berechnen AddFingerprintBuffer(0, *Buffer+Length/2, Length/2) ; Teil 2 berechnen MD5$ = FinishFingerprint(0) ; Berechnung abschließen Debug "MD5 checksum = " + MD5$ MD5$ = Fingerprint(*Buffer, Length, #PB_Cipher_MD5) ; mit der Berechnung in 1 Schritt vergleichen Debug "MD5 checksum = " + MD5$ EndIf FreeMemory(*Buffer) EndIf
Siehe auch
Fingerprint(), FileFingerprint(), StringFingerprint()
Unterstützte OS
Alle