Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks SQL
Databricks Runtime 19 en hoger
Geeft de keyed-hash message authenticatiecode (HMAC) terug van het gebruik key van message en een hash algorithm.
Een HMAC verifieert zowel de integriteit als de authenticiteit van een bericht met behulp van een gedeeld geheim key: een ontvanger die hetzelfde key bezit kan de code opnieuw berekenen en bevestigen dat het bericht niet is gewijzigd en afkomstig is van een partij die de sleutel kent. Veelvoorkomende toepassingen zijn het ondertekenen van API-verzoeken, het valideren van webhook-payloads en het afleiden van ondertekeningssleutels door HMAC-aanroepen aan elkaar te koppelen (bijvoorbeeld AWS Signature Version 4).
Syntax
hmac(key, message [, algorithm])
Arguments
-
key: eenBINARY-expressie. De geheime sleutel. -
message: eenBINARY-expressie. De boodschap om te authenticeren. -
algorithm: Een optioneleSTRINGexpressie die het hash-algoritme beschrijft. De standaardwaarde isSHA-256.
Returns
A BINARY.
Het resultaat is de ruwe MAC-bytes. Om een tekstuele representatie te verkrijgen, wikkel je het resultaat in hex functie of base64 functie. Omdat het resultaat is BINARY, kun je het terugvoeren als het van een key andere hmac aanroep om sleutelafleidingen te ketenen.
algorithm moet een van de volgende zijn (naam-ongevoelig, met of zonder koppelteken, bijvoorbeeld zowel SHA-256 als SHA256):
'SHA-224'-
'SHA-256': Dit is de standaard. 'SHA-384''SHA-512''SHA-1''MD5'
Als een argument is NULL, is het resultaat NULL.
Algemene foutvoorwaarden
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