- 类别:
字符串和二进制函数 (加密哈希)
SHA1、SHA1_HEX¶
返回一个 40 字符的十六进制编码字符串,其包含 160 位 SHA-1 消息摘要。
这些函数为同义函数。
语法¶
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 | +-------+------------------------------------------+------------------------------------------+