hmac funkcja

Dotyczy do:zaznaczyć tak, Databricks SQL oznaczony tak, 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żenie BINARY. Klucz tajny.
  • message: wyrażenie BINARY. Wiadomość o uwierzytelnieniu.
  • algorithm: Opcjonalne STRING wyrażenie opisujące algorytm skrótu. Wartość domyślna to SHA-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