SHA2_BINARY

SHA2_BINARY

N이 지정된 출력 다이제스트 크기일 때, N비트 SHA-2 메시지 다이제스트를 포함하는 이진 값을 반환해요.

출처: Snowflake SHA2_BINARY 함수 문서

본문

구문 (Syntax)

SHA2_BINARY( [, ])

인자 (Arguments)

필수:

  • msg — 해시할 메시지인 문자열 표현식이에요.

선택:

  • digest_size — 문자열을 암호화하는 데 사용된 특정 SHA-2 함수에 해당하는 출력 크기(비트 단위):

    • 224 = SHA-224
    • 256 = SHA-256 (기본값)
    • 384 = SHA-384
    • 512 = SHA-512

    SHA-512/224와 SHA-512/256은 지원되지 않아요.

반환 값 (Returns)

반환 값의 데이터 타입은 BINARY예요.

사용 노트 (Usage Notes)

  • 암호 해독이 필요한 메시지를 암호화하는 데 이 함수를 사용하지 마세요. 이 함수에는 대응하는 해독 함수가 없어요. (출력의 길이는 입력의 길이와 무관해요. 출력이 입력의 모든 정보를 담기에 충분한 비트를 반드시 갖지는 않으므로, 모든 가능한 유효 입력을 해독할 수 있는 함수를 작성하는 것은 불가능해요.)
  • 이 함수는 데이터 손상 탐지를 위한 체크섬 계산과 같은 다른 목적을 위한 것이에요.
  • 데이터를 암호화하고 해독해야 한다면 다음 함수를 사용해요:
    • ENCRYPT와 DECRYPT
    • ENCRYPT_RAW와 DECRYPT_RAW

예제 (Examples)

SELECT sha2_binary('Snowflake', 384);

--------------------------------------------------------------------------------------------------+
                                   SHA2_BINARY('SNOWFLAKE', 384)                                  |
--------------------------------------------------------------------------------------------------+
 736BD8A53845348830B1EE63A8CD3972F031F13B111F66FFDEC2271A7AE709662E503A0CA305BD50DA8D1CED48CD45D9 |
--------------------------------------------------------------------------------------------------+

출력의 데이터 타입은 BINARY이며 BINARY 컬럼에 저장할 수 있어요: 테이블을 만들고 채우기:

CREATE TABLE sha_table(
    v VARCHAR, 
    v_as_sha1 VARCHAR,
    v_as_sha1_hex VARCHAR,
    v_as_sha1_binary BINARY,
    v_as_sha2 VARCHAR,
    v_as_sha2_hex VARCHAR,
    v_as_sha2_binary BINARY
    );
INSERT INTO sha_table(v) VALUES ('AbCd0');
UPDATE sha_table SET 
    v_as_sha1 = SHA1(v),
    v_as_sha1_hex = SHA1_HEX(v),
    v_as_sha1_binary = SHA1_BINARY(v),
    v_as_sha2 = SHA2(v),
    v_as_sha2_hex = SHA2_HEX(v),
    v_as_sha2_binary = SHA2_BINARY(v)
    ;

쿼리와 출력은 다음과 같아요 (표시를 위해 출력은 사용자가 읽을 수 있는 형태, 즉 이 경우 16진수 문자열로 암시적으로 캐스팅됨):

SELECT v, v_as_sha2_binary
  FROM sha_table
  ORDER BY v;
+-------+------------------------------------------------------------------+
| V     | V_AS_SHA2_BINARY                                                 |
|-------+------------------------------------------------------------------|
| AbCd0 | E1D8BA27889D6782008F495473278C4F071995C5549A976E4D4F93863CE93643 |
+-------+------------------------------------------------------------------+

더 알아보기