SM3 函数

简介

SM3 函数用于计算给定字符串的 SM3 散列值。SM3 是中国国家密码管理局发布的密码散列函数标准(GB/T 32905-2016),可以将任意长度的数据映射为固定长度(256 位)的哈希值,输出为 64 个字符的十六进制字符串。

语法

sm3(expr)

参数说明

  • expr: 需要计算 SM3 哈希值的输入数据,支持 STRING、VARCHAR、CHAR、BINARY 类型。

返回结果

返回一个 STRING 类型的值,表示计算得到的 64 个字符的十六进制哈希字符串。

使用示例

  1. 计算一个简单字符串的 SM3 值:

    SELECT sm3('abc') AS res;
    +------------------------------------------------------------------+
    |                               res                                |
    +------------------------------------------------------------------+
    | 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0 |
    +------------------------------------------------------------------+
  2. 计算一个数字字符串的 SM3 值:

    SELECT sm3('0123456789') AS res;
    +------------------------------------------------------------------+
    |                               res                                |
    +------------------------------------------------------------------+
    | 09093b72553f5d9d622d6c62f5ffd916ee959679b1bd4d169c3e12aa8328e743 |
    +------------------------------------------------------------------+
  3. 当输入为 NULL 时:

    SELECT sm3(NULL) AS res;
    +------+
    | res  |
    +------+
    | NULL |
    +------+

注意事项

  • SM3 是中国国家密码管理局发布的商用密码杂凑算法标准(GB/T 32905-2016),属于国密算法体系。
  • SM3 哈希值是不可逆的,即无法从哈希值推导出原始数据。
  • SM3 输出固定为 64 个字符的十六进制字符串(256 位)。
  • 当输入参数为 NULL 时,返回结果为 NULL。
  • SM3 的安全性与 SHA-256 相当,适用于数据完整性校验、数字签名等场景。

联系我们
预约咨询
微信咨询
电话咨询