Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime 19 und höher
Gibt den Keyed-Hash-Nachrichten-Authentifizierungscode (HMAC) von Verwendung messagekey und einem Hash algorithmzurück.
Ein HMAC überprüft sowohl die Integrität als auch die Echtheit einer Nachricht mithilfe eines gemeinsamen Geheimnisses: Ein Empfänger, der dieses key Geheimnis keybesitzt, kann den Code neu berechnen und bestätigen, dass die Nachricht nicht verändert wurde und von einer Partei stammt, die den Schlüssel kennt. Häufige Anwendungen sind das Signieren von API-Anfragen, die Validierung von Webhook-Payloads und das Ableiten von Signierungsschlüsseln durch Verkettung von HMAC-Aufrufen (zum Beispiel AWS Signature Version 4).
Syntax
hmac(key, message [, algorithm])
Arguments
-
key: EinBINARY-Ausdruck. Der geheime Schlüssel. -
message: EinBINARY-Ausdruck. Die Nachricht zur Authentifizierung. -
algorithm: Ein optionalerSTRINGAusdruck, der den Hash-Algorithmus beschreibt. Der Standardwert lautetSHA-256.
Returns
Ein BINARY.
Das Ergebnis sind die rohen MAC-Bytes. Um eine textuelle Darstellung zu erhalten, wird das Ergebnis mit hex Funktion oder base64 Funktion umwickelt. Denn das Ergebnis ist BINARY, können Sie es als Aufruf key eines anderen hmac Aufrufs zurückgeben, um Schlüsselableitungen zu ketten.
algorithm muss eines der folgenden sein (kleinschreibunsensitiv, mit oder ohne Bindestrich, zum Beispiel sowohl als auch SHA-256SHA256):
'SHA-224'-
'SHA-256': Das ist der Standard. 'SHA-384''SHA-512''SHA-1''MD5'
Wenn ein Argument ist NULL, ist das Ergebnis NULL.
Häufige Fehlerbedingungen
Examples
> SELECT hex(hmac('key', 'message'));
6E9EF29B75FFFC5B7ABAE527D58FDADB2FE42E7219011976917343065F58ED4A
> SELECT hex(hmac('key', 'message', 'SHA-512'));
E477384D7CA229DD1426E64B63EBF2D36EBD6D7E669A6735424E72EA6C01D3F8B56EB39C36D8232F5427999B8D1A3F9CD1128FC69F4D75B434216810FA367E98
-- Chaining: the BINARY output of one hmac feeds in as the key of the next.
> SELECT hex(hmac(hmac('key', 'message'), 'message2'));
28042756E0362D954B61661BB4DEC9FF9F6C970D346CAEB6DB36ED7B735AB38C
-- A NULL argument yields NULL.
> SELECT hmac(CAST(NULL AS BINARY), 'message');
NULL
-- An unsupported algorithm raises an error.
> SELECT hmac('key', 'message', 'SHA-3');
Error: INVALID_PARAMETER_VALUE.HMAC_ALGORITHM
-- An empty key raises an error.
> SELECT hmac('', 'message');
Error: INVALID_PARAMETER_VALUE.HMAC_CRYPTO_ERROR