Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
Databricks SQL
Runtime 19 et supérieur
Retourne le code d’authentification par message à hachage à clé (HMAC) d’utiliser messagekey et un hachage algorithm.
Un HMAC vérifie à la fois l’intégrité et l’authenticité d’un message à l’aide d’un secret keypartagé : un destinataire qui le détient key peut recalculer le code et confirmer que le message n’a pas été modifié et provient d’une partie connaissant la clé. Les usages courants incluent la signature de requêtes API, la validation des charges utiles de webhook, et la dérivation de clés de signature en chaînant des appels HMAC (par exemple, AWS Signature Version 4).
Syntax
hmac(key, message [, algorithm])
Arguments
-
key: Une expressionBINARY. Clé secrète. -
message: Une expressionBINARY. Le message à authentifier. -
algorithm: Une expression optionnelleSTRINGdécrivant l’algorithme de hachage. La valeur par défaut estSHA-256.
Returns
Un BINARY.
Le résultat est les octets MAC bruts. Pour obtenir une représentation textuelle, enroulez le résultat avec hex fonction ou base64 fonction. Parce que le résultat est BINARY, vous pouvez le réintroduire comme un key autre hmac appel à des dérivations de clés en chaîne.
algorithm doit être l’un des suivants (insensible à la casse, avec ou sans le trait d’union, par exemple à la fois SHA-256 et SHA256) :
'SHA-224'-
'SHA-256': C’est la norme par défaut. 'SHA-384''SHA-512''SHA-1''MD5'
Si un argument est NULL, le résultat est NULL.
Conditions d’erreur courantes
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