StartFingerprint()

Syntax

Ergebnis = StartFingerprint(#Fingerprint, Plugin [, Bits])
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.
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.

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() ->