- 类别:
字符串和二进制函数 (加密哈希)
SHA2_BINARY¶
返回一个包含 N 位 SHA-2 消息摘要的二进制值,其中 N 是指定的输出摘要大小。
语法¶
SHA2_BINARY(<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。
返回¶
返回值的数据类型是 BINARY。
使用说明¶
请勿使用此函数对需要解密的消息进行加密。此函数没有相应的解密函数。(输出的长度与输入的长度无关。输出的位数不一定足以容纳来自输入的所有信息,因此不可能编写可以解密所有可能的有效输入的函数。)
此函数用于其他目的,例如计算校验和以检测数据损坏。
如果需要对数据进行加密和解密,请使用以下函数:
示例¶
SELECT sha2_binary('Snowflake', 384);
--------------------------------------------------------------------------------------------------+
SHA2_BINARY('SNOWFLAKE', 384) |
--------------------------------------------------------------------------------------------------+
736BD8A53845348830B1EE63A8CD3972F031F13B111F66FFDEC2271A7AE709662E503A0CA305BD50DA8D1CED48CD45D9 |
--------------------------------------------------------------------------------------------------+
输出的数据类型是 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) ;以下是查询和输出(请注意,为了显示,输出被隐式转换为用户可读的形式,在这种情况下是十六进制数字的字符串):
SELECT v, v_as_sha2_binary FROM sha_table ORDER BY v; +-------+------------------------------------------------------------------+ | V | V_AS_SHA2_BINARY | |-------+------------------------------------------------------------------| | AbCd0 | E1D8BA27889D6782008F495473278C4F071995C5549A976E4D4F93863CE93643 | +-------+------------------------------------------------------------------+