hmac 함수

적용 대상:체크 체크 완료 예 데이터브릭스 SQL 체크 완료 데이터브릭스 런타임 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