Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy do:
, Databricks SQL
, Databricks Runtime 19 i wyższe
Zwraca kod uwierzytelniania wiadomości z kluczami i skrótem (HMAC) używającego messagekey oraz skrót algorithm.
HMAC weryfikuje zarówno integralność, jak i autentyczność wiadomości za pomocą wspólnego sekretu key: odbiorca, który go posiada key , może ponownie obliczyć kod i potwierdzić, że wiadomość nie została zmieniona i pochodzi od osoby znającej klucz. Do typowych zastosowań należą podpisywanie żądań API, weryfikacja ładunków webhook oraz wyprowadzanie kluczy podpisowych przez łańcuchowanie wywołań HMAC (na przykład AWS Signature Version 4).
Składnia
hmac(key, message [, algorithm])
Arguments
-
key: wyrażenieBINARY. Klucz tajny. -
message: wyrażenieBINARY. Wiadomość o uwierzytelnieniu. -
algorithm: OpcjonalneSTRINGwyrażenie opisujące algorytm skrótu. Wartość domyślna toSHA-256.
Returns
Element BINARY.
Efektem są surowe bajty MAC. Aby uzyskać reprezentację tekstową, oplotmy wynik funkcjąhex lub base64 funkcją. Ponieważ wynik to BINARY, można go ponownie wprowadzić jako key kolejne hmac wywołanie do łańcucha wyprowadzeń klucza.
algorithm musi być jednym z następujących (nierozróżniających wielka liter, z lub bez łącznika, na przykład zarówno jak SHA-256 i SHA256):
'SHA-224'-
'SHA-256': To jest domyślne. 'SHA-384''SHA-512''SHA-1''MD5'
Jeśli dowolny argument jest , NULLwynik to NULL.
Typowe warunki błędów
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