- 카테고리:
문자열 및 이진 함수 (암호화 해시)
SHA1 , SHA1_HEX¶
160비트 SHA-1 메시지 다이제스트를 포함하고 16진수로 인코딩된 40자의 문자열을 반환합니다.
이러한 함수는 동의어입니다.
구문¶
SHA1(<msg>)
SHA1_HEX(<msg>)
인자¶
msg
해시할 메시지인 문자열 식입니다.
반환¶
반환된 값의 데이터 타입은 VARCHAR 입니다.
사용법 노트¶
SHA1 함수 집합은 주로 다른 시스템과의 하위 호환성을 위해 제공됩니다. 보다 안전한 암호화를 위해 Snowflake는 SHA2 함수 집합을 사용할 것을 권장합니다.
암호 해독해야 하는 메시지를 암호화할 목적으로 이 함수를 사용하지는 마십시오. 이 함수에는 상응하는 암호 해독 함수가 없습니다. (출력의 길이는 입력의 길이와 무관합니다. 출력은 입력의 모든 정보를 보유하기에 충분한 비트를 꼭 가져야 하는 것은 아니므로, 유효한 입력을 가능한 한 전부 암호 해독할 수 있는 함수를 작성하기 불가능합니다.)
이 함수는 데이터 손상을 감지하기 위한 체크섬 계산과 같이, 다른 목적이 있는 함수입니다.
데이터를 암호화 및 암호 해독해야 하는 경우 다음 함수를 사용하십시오.
예¶
SELECT sha1('Snowflake');
------------------------------------------+
SHA1('SNOWFLAKE') |
------------------------------------------+
fda76b0bcc1e87cf259b1d1e3271d76f590fb5dd |
------------------------------------------+
출력의 데이터 타입은 문자열(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_sha1, v_as_sha1_hex FROM sha_table ORDER BY v; +-------+------------------------------------------+------------------------------------------+ | V | V_AS_SHA1 | V_AS_SHA1_HEX | |-------+------------------------------------------+------------------------------------------| | AbCd0 | 9ddb991863d53b35a52c490db256207c776ab8d8 | 9ddb991863d53b35a52c490db256207c776ab8d8 | +-------+------------------------------------------+------------------------------------------+