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

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