SHA1_BINARY
SHA1_BINARY
SHA1 해시를 바이너리 값으로 돌려주는 함수예요. 입력 메시지를 160비트(20바이트) SHA-1 메시지 다이제스트로 만들고, 그 결과를 BINARY 타입으로 반환해요. 텍스트나 hex 문자열로 받고 싶다면 SHA1, SHA1_HEX와 함께 비교해서 쓰면 돼요.
출처: 공식 문서
본문
입력 메시지에 대한 160비트 SHA-1 메시지 다이제스트를 담은 20바이트 바이너리를 반환합니다.
구문 (Syntax)
SHA1_BINARY(<msg>)
인자 (Arguments)
msg
해시할 메시지인 문자열 표현식입니다.
반환값 (Returns)
반환값의 데이터 타입은 BINARY입니다.
사용 참고 (Usage notes)
- SHA1 함수 계열은 주로 다른 시스템과의 하위 호환성을 위해 제공됩니다. 더 안전한 암호화가 필요하면 Snowflake는 SHA2 함수 계열을 사용할 것을 권장합니다.
- 복호화해야 할 메시지를 암호화하는 용도로는 이 함수를 쓰지 마세요. 이 함수에는 대응하는 복호화 함수가 없습니다. (출력 길이는 입력 길이와 무관하며, 출력이 입력의 모든 정보를 담을 만큼 충분한 비트를 가지지 않으므로, 모든 유효 입력을 복호화할 수 있는 함수를 작성하는 것은 불가능합니다.) 이 함수는 데이터 손상을 감지하기 위한 체크섬 계산 같은 다른 목적을 위한 것입니다.
- 데이터를 암호화·복호화해야 한다면 다음 함수를 사용하세요:
예제 (Examples)
SELECT sha1_binary('Snowflake');
------------------------------------------+
SHA1_BINARY('SNOWFLAKE') |
------------------------------------------+
FDA76B0BCC1E87CF259B1D1E3271D76F590FB5DD |
------------------------------------------+
출력의 데이터 타입은 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_sha1_binary
FROM sha_table
ORDER BY v;
+-------+------------------------------------------+
| V | V_AS_SHA1_BINARY |
|-------+------------------------------------------|
| AbCd0 | 9DDB991863D53B35A52C490DB256207C776AB8D8 |
+-------+------------------------------------------+
더 알아보기 (Learn more)
- SHA1 · SHA1_HEX · SHA1_BINARY
- SHA2 · SHA2_HEX · SHA2_BINARY
- ENCRYPT · DECRYPT
- ENCRYPT_RAW · DECRYPT_RAW