카테고리:

문자열 및 이진 함수 (암호화 해시)

SHA1 , SHA1_HEX

160비트 SHA-1 메시지 다이제스트를 포함하고 16진수로 인코딩된 40자의 문자열을 반환합니다.

이러한 함수는 동의어입니다.

구문

SHA1(<msg>)

SHA1_HEX(<msg>)
Copy

인자

msg

해시할 메시지인 문자열 식입니다.

반환

반환된 값의 데이터 타입은 VARCHAR 입니다.

사용법 노트

  • SHA1 함수 집합은 주로 다른 시스템과의 하위 호환성을 위해 제공됩니다. 보다 안전한 암호화를 위해 Snowflake는 SHA2 함수 집합을 사용할 것을 권장합니다.

  • 암호 해독해야 하는 메시지를 암호화할 목적으로 이 함수를 사용하지는 마십시오. 이 함수에는 상응하는 암호 해독 함수가 없습니다. (출력의 길이는 입력의 길이와 무관합니다. 출력은 입력의 모든 정보를 보유하기에 충분한 비트를 꼭 가져야 하는 것은 아니므로, 유효한 입력을 가능한 한 전부 암호 해독할 수 있는 함수를 작성하기 불가능합니다.)

    이 함수는 데이터 손상을 감지하기 위한 체크섬 계산과 같이, 다른 목적이 있는 함수입니다.

    데이터를 암호화 및 암호 해독해야 하는 경우 다음 함수를 사용하십시오.

SELECT sha1('Snowflake');

------------------------------------------+
            SHA1('SNOWFLAKE')             |
------------------------------------------+
 fda76b0bcc1e87cf259b1d1e3271d76f590fb5dd |
------------------------------------------+
Copy

출력의 데이터 타입은 문자열(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)
    ;
Copy

쿼리 및 출력은 다음과 같습니다.

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 |
+-------+------------------------------------------+------------------------------------------+
Copy