Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik:
Databricks SQL
igen Databricks Runtime 19 és annál magasabb
A kulcsos hash üzenet hitelesítési kódját (HMAC) adja vissza a message használatával key és egy hash-jelet algorithm.
A HMAC megosztott titok keysegítségével ellenőrzi az üzenet integritását és hitelességét: egy címzett, aki ugyanazt key birtokolja, újraszámolhatja a kódot, és megerősítheti, hogy az üzenet nem változott, hanem egy olyan féltől jött, aki ismeri a kulcsot. Gyakori felhasználási területek közé tartozik az API kérések aláírása, a webhook hasznos terhek érvényesítése, valamint az aláíráskulcsok HMAC hívások láncolásával való levezetése (például AWS Signature Version 4).
Syntax
hmac(key, message [, algorithm])
Arguments
-
key: EgyBINARYkifejezés. A titkos kulcs. -
message: EgyBINARYkifejezés. Az üzenet, hogy hitelesítsük. -
algorithm: Egy opcionálisSTRINGkifejezés, amely leírja a hash algoritmust. Az alapértelmezett érték aSHA-256.
Returns
Egy BINARY.
Az eredmény a nyers MAC bájt. Szöveges reprezentáció eléréséhez csomagoljuk az eredményt függvényrehex vagy base64 funkcional. Mivel az eredmény az BINARY, hogy vissza tudod adni egy key másik hmac hívás lánckulcs-levezetés esetén.
algorithm az alábbiak egyikének kell lennie (kis- és kozikérzékeny, kötőjellel vagy anélkül, például mindkettő SHA-256 és SHA256):
'SHA-224'-
'SHA-256': Ez az alapértelmezett. 'SHA-384''SHA-512''SHA-1''MD5'
Ha bármely érv , NULLaz eredmény .NULL
Gyakori hibafeltételek
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