SHA2 , SHA2_HEX

SHA2 , SHA2_HEX

SHA2 (및 그 동의어 SHA2_HEX) 함수는 지정된 출력 다이제스트 크기 N에 대한 N-bit SHA-2 메시지 다이제스트를 담은 16진수 인코딩 문자열을 반환해요.

이 두 함수는 동의어예요.

출처: 문서

본문

문법 (Syntax)

SHA2( <msg> [, <digest_size>] )

SHA2_HEX( <msg> [, <digest_size>] )

인자 (Arguments)

필수 (Required):

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

선택 (Optional):

  • digest_size — 문자열을 암호화하는 데 사용되는 특정 SHA-2 함수에 해당하는 출력 크기(비트)예요: 224 = SHA-224, 256 = SHA-256 (기본값), 384 = SHA-384, 512 = SHA-512. SHA-512/224와 SHA-512/256은 지원되지 않아요.

반환 (Returns)

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

사용 메모 (Usage notes)

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

예제 (Examples)

SELECT sha2('Snowflake', 224);

----------------------------------------------------------+
                  SHA2('SNOWFLAKE', 224)                  |
----------------------------------------------------------+
 6267d3d7a59929e6864dd4b737d98e3ef8569d9f88a7466647838532 |
----------------------------------------------------------+

출력의 데이터 타입은 문자열(VARCHAR)이며 VARCHAR 열에 저장할 수 있어요:

테이블을 만들고 채워요:

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)
    ;

다음은 쿼리와 출력이에요:

SELECT v, v_as_sha2, v_as_sha2_hex
  FROM sha_table
  ORDER BY v;
+-------+------------------------------------------------------------------+------------------------------------------------------------------+
| V     | V_AS_SHA2                                                        | V_AS_SHA2_HEX                                                    |
|-------+------------------------------------------------------------------+------------------------------------------------------------------|
| AbCd0 | e1d8ba27889d6782008f495473278c4f071995c5549a976e4d4f93863ce93643 | e1d8ba27889d6782008f495473278c4f071995c5549a976e4d4f93863ce93643 |
+-------+------------------------------------------------------------------+------------------------------------------------------------------+

더 알아보기 (Learn more)