Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime 19 e superiores
Devolve o código de autenticação por hash com chave (HMAC) de message usar key e um hash algorithm.
Um HMAC verifica tanto a integridade como a autenticidade de uma mensagem usando um segredo keypartilhado: um destinatário que detenha o key mesmo pode recalcular o código e confirmar que a mensagem não foi alterada e veio de uma parte que conhece a chave. Usos comuns incluem assinar pedidos de API, validar cargas úteis de webhooks e derivar chaves de assinatura encadeando chamadas HMAC (por exemplo, AWS Signature Versão 4).
Syntax
hmac(key, message [, algorithm])
Arguments
-
key: UmaBINARYexpressão. A chave secreta. -
message: UmaBINARYexpressão. A mensagem a autenticar. -
algorithm: Uma expressão opcionalSTRINGque descreve o algoritmo de hash. A predefinição éSHA-256.
Returns
Um BINARY.
O resultado são os bytes MAC brutos. Para obter uma representação textual, envolva o resultado com hex função ou base64 função. Porque o resultado é BINARY, podes alimentá-lo de volta como o key de outra hmac chamada para derivações de chaves em cadeia.
algorithm deve ser um dos seguintes (indistinto a maiúsculas minúsculas, com ou sem hífen, por exemplo ambos SHA-256 e SHA256):
'SHA-224'-
'SHA-256': Este é o padrão. 'SHA-384''SHA-512''SHA-1''MD5'
Se qualquer argumento for NULL, o resultado é NULL.
Condições de erro comuns
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