SM3 函数
简介
SM3 函数用于计算给定字符串的 SM3 散列值。SM3 是中国国家密码管理局发布的密码散列函数标准(GB/T 32905-2016),可以将任意长度的数据映射为固定长度(256 位)的哈希值,输出为 64 个字符的十六进制字符串。
语法
sm3(expr)
参数说明
expr: 需要计算 SM3 哈希值的输入数据,支持 STRING、VARCHAR、CHAR、BINARY 类型。
返回结果
返回一个 STRING 类型的值,表示计算得到的 64 个字符的十六进制哈希字符串。
使用示例
-
计算一个简单字符串的 SM3 值:
SELECT sm3('abc') AS res;
+------------------------------------------------------------------+
| res |
+------------------------------------------------------------------+
| 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0 |
+------------------------------------------------------------------+
-
计算一个数字字符串的 SM3 值:
SELECT sm3('0123456789') AS res;
+------------------------------------------------------------------+
| res |
+------------------------------------------------------------------+
| 09093b72553f5d9d622d6c62f5ffd916ee959679b1bd4d169c3e12aa8328e743 |
+------------------------------------------------------------------+
-
当输入为 NULL 时:
SELECT sm3(NULL) AS res;
+------+
| res |
+------+
| NULL |
+------+
注意事项
- SM3 是中国国家密码管理局发布的商用密码杂凑算法标准(GB/T 32905-2016),属于国密算法体系。
- SM3 哈希值是不可逆的,即无法从哈希值推导出原始数据。
- SM3 输出固定为 64 个字符的十六进制字符串(256 位)。
- 当输入参数为 NULL 时,返回结果为 NULL。
- SM3 的安全性与 SHA-256 相当,适用于数据完整性校验、数字签名等场景。