- 카테고리:
문자열 및 이진 함수 (암호화 해시)
SHA2 , SHA2_HEX¶
N비트 SHA-2 메시지 다이제스트를 포함하고 16진수로 인코딩된 문자열을 반환하는데, 여기서 N은 지정된 출력 다이제스트 크기입니다.
이러한 함수는 동의어입니다.
구문¶
SHA2( <msg> [, <digest_size>] )
SHA2_HEX( <msg> [, <digest_size>] )
인자¶
필수:
msg
해시할 메시지인 문자열 식
선택 사항:
digest_size
문자열을 암호화하는 데 사용되는 특정 SHA-2 함수에 해당하는 출력 크기(비트):
224 = SHA-224
256 = SHA-256(기본값)
384 = SHA-384
512 = SHA-512
SHA-512/224 및 SHA-512/256은 지원되지 않습니다.
반환¶
반환된 값의 데이터 타입은 VARCHAR 입니다.
사용법 노트¶
암호 해독해야 하는 메시지를 암호화할 목적으로 이 함수를 사용하지는 마십시오. 이 함수에는 상응하는 암호 해독 함수가 없습니다. (출력의 길이는 입력의 길이와 무관합니다. 출력은 입력의 모든 정보를 보유하기에 충분한 비트를 꼭 가져야 하는 것은 아니므로, 유효한 입력을 가능한 한 전부 암호 해독할 수 있는 함수를 작성하기 불가능합니다.)
이 함수는 데이터 손상을 감지하기 위한 체크섬 계산과 같이, 다른 목적이 있는 함수입니다.
데이터를 암호화 및 암호 해독해야 하는 경우 다음 함수를 사용하십시오.
예¶
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 | +-------+------------------------------------------------------------------+------------------------------------------------------------------+