적용 대상:
데이터브릭
완료 데이터브릭스 런타임 19 이상
해시 algorithm를 사용하여 key 키드 해시 메시지 인증 코드(HMAC)message를 반환합니다.
HMAC는 공유 비밀 key을 사용하여 메시지의 무결성과 진위성을 모두 검증합니다. 동일한 key 비밀을 보유한 수신자는 코드를 재계산하여 메시지가 변경되지 않았고 키를 아는 당사자로부터 온 것임을 확인할 수 있습니다. 일반적인 용도로는 API 요청 서명, 웹훅 페이로드 검증, 그리고 HMAC 호출을 연속하여 서명 키를 도출하는 것(예: AWS 서명 버전 4)이 있습니다.
Syntax
hmac(key, message [, algorithm])
Arguments
-
key:BINARY표현식입니다. 비밀 키입니다. -
message:BINARY표현식입니다. 인증할 메시지. -
algorithm: 해시 알고리즘을 설명하는 선택적STRING표현식입니다. 기본값은SHA-256입니다.
Returns
BINARY.
결과가 원시 MAC 바이트입니다. 텍스트 표현을 얻으려면 함수 또는 base64 함수로 hex 결과를 감싸세요. 결과가 가 되기 BINARY때문에 이를 체인 키 도출을 위한 또 다른 hmac 호출의 피드백으로 key 다시 입력할 수 있습니다.
algorithm 다음 중 하나여야 합니다(대문자 구분 없음, 하이픈이 있든 없든, 예: 두 가지 모두와 같 SHA-256SHA256은):
'SHA-224'-
'SHA-256': 이게 기본값이야. 'SHA-384''SHA-512''SHA-1''MD5'
임의의 인수 가 이면 NULL결과는 입니다.NULL
일반적인 오류 조건
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