Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Funzione
Si applica a:
Databricks SQL
Runtime 19 e superiori
Restituisce il codice di autenticazione del messaggio hash con chiave (HMAC) di message utilizzo key e un hash algorithm.
Un HMAC verifica sia l'integrità che l'autenticità di un messaggio utilizzando un segreto keycondiviso: un destinatario che lo key possiede può ricalcolare il codice e confermare che il messaggio non è stato alterato e proviene da una parte che conosce la chiave. Gli usi comuni includono la firma di richieste API, la validazione dei payload webhook e il derivamento delle chiavi di firma tramite la concatenazione di chiamate HMAC (ad esempio, AWS Signature Versione 4).
Syntax
hmac(key, message [, algorithm])
Arguments
-
key: Una espressioneBINARY. Chiave privata. -
message: Una espressioneBINARY. Il messaggio da autenticare. -
algorithm: Un'espressione opzionaleSTRINGche descrive l'algoritmo hash. Il valore predefinito èSHA-256.
Returns
Un oggetto BINARY.
Il risultato sono i byte MAC grezzi. Per ottenere una rappresentazione testuale, si avvolge il risultato con hex funzione o base64 funzione. Poiché il risultato è BINARY, puoi restituirlo come un key altro hmac richiamo a derivazioni di chiavi in catena.
algorithmdeve essere uno dei seguenti (insensibile al minuscolo, con o senza trattino, ad esempio sia con SHA-256 che ):SHA256
'SHA-224'-
'SHA-256': Questo è il predefinito. 'SHA-384''SHA-512''SHA-1''MD5'
Se un qualsiasi argomento è NULL, il risultato è NULL.
Condizioni di errore comuni
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