MemHMAC
obj -> MemHMAC(int1, alpha2[, int3[, int4[, handle5]]]) : alpha
Authentifizierungs-Code ermitteln
Details
- obj: Deskriptor des Memory -Objekts
- int1:
- Hash-Verfahren und Kodierungen:
_MemHashMD5_MemHashRMD160_MemHashSHA1_MemHashSHA256_MemHashSHA384_MemHashSHA512_MemKeyHex_MemKeyBase64_MemKeyMem_MemResultHex_MemResultBase64
- alpha2: Schlüssel des Hash-Verfahrens
- int3: Startposition für die Berechnung (optional)
- int4: Länge (optional)
- handle5: Memory -Objekt mit Schlüssel des Hash-Verfahrens (optional)
- Resultat:
alphaAuthentifizierungscode - Siehe: Verwandte Befehle ,
MemHash ()
Dieser Befehl bildet für eine Nachricht einen Authentifizierungs-Code. Der Code wird aus dem Inhalt des übergebenen Memory -Objekts (obj), dem Verfahren (int1) und dem Schlüssel (alpha2) errechnet. Der Schlüssel kann alternativ in einem Memory -Objekt vorliegen, welches in (alpha5) angegeben wird. Dazu muss in (int1) _MemKeyMem angegeben sein. Es werden maximal die ersten 1024 Byte des Schlüssels aus dem Memory-Objekt berücksichtigt.
Im Parameter (int1) wird auch die Kodierung des Ergebnisses angegeben. Folgende Konstanten können übergeben werden:
-
Hash-Verfahren
-
_MemHashMD5: MD5-Hash (Message-Digest Algorithm 5) -
_MemHashRMD160: RIPEMD 160-Hash (RACE Integrity Primitives Evaluation Message Digest) -
_MemHashSHA1: SHA-1 Hash (Secure Hash Algorithm) -
_MemHashSHA256: SHA-256 Hash -
_MemHashSHA384: SHA-384 Hash -
_MemHashSHA512: SHA-512 Hash -
Kodierung des Schlüssels
-
_MemKeyHex: Schlüssel liegt hexadezimal vor -
_MemKeyBase64: Schlüssel liegt Base64-kodiert vor -
_MemKeyMem: Schlüssel liegt Memory -Objekt vor -
Kodierung des Ergebnisses
-
_MemResultHex: Hexadezimales Ergebnis -
_MemResultBase64: Base64-kodiertes Ergebnis
Der Parameter (int1) setzt sich aus der Kombination je einer Konstanten aus den Bereichen Verfahren, Schlüssel-Kodierung und Ergebnis-Kodierung zusammen.
Beispiele:
tHashValue # tMem->MemHMAC(_MemHashSHA256 | _MemKeyBase64 | _MemResultHex, aKeyHMAC);
tHashValue # tMem->MemHMAC(_MemHashSHA512 | _MemKeyMem | _MemResultHex, '', 1, _MemDataLen, aMemKeyHMAC);
Der Hash-Wert kann auch aus einem Teil des Memory -Objekts gebildet werden. Dazu wird die Startposition (int3) und die zu berücksichtigende Länge (int4) angegeben. Wird eine ungültigen Startposition (int3) oder eine zu große Länge (int4) angegeben, wird ein Laufzeitfehler erzeugt.
Mögliche Laufzeitfehler:
_ErrHdlInvalid: Der übergeben Deskriptor (obj) oder (handle5) ist ungültig._ErrValueInvalid: Als Hash- und Kodierungsverfahren (int1) wurde eine ungültige / unvollständige Kombination angegeben. Aus jeder Gruppe muss eine Konstante angegeben werden._ErrValueRange: Die angegeben Startposition (int3) oder die Länge des Bereiches (int4) ist zu groß.