Skip to content

国密SM3

函数名:sm3_hash / sm3_hash

功能描述

计算输入字符串的 SM3 哈希值,输出格式可选 Base64 或 Hex。SM3 为国密哈希算法,生成 256 位(32 字节)摘要,适用于数据完整性校验、摘要生成等场景。

会员等级:🟢 免费版(Free)

语法

excel
=sm3_hash(输入字符串[, 输出格式(0=Base64(默认),1=Hex)])

参数

参数名类型必填默认值说明
输入字符串String需要进行 SM3 哈希计算的字符串
输出格式(0=Base64(默认),1=Hex)Int00=Base64(默认),1=Hex

返回值

String - SM3 哈希值字符串。输出格式 为 1 时返回小写十六进制字符串(64 位);默认(0)返回 Base64 编码字符串。

使用示例

默认 Base64 格式

公式

excel
=sm3_hash("测试数据123")

结果

BVqgyVCOgKCKSyxo7MawIstVaS1b2fprkol2xhyjC90=

指定 Hex 格式输出

公式

excel
=sm3_hash("测试数据123", 1)

结果

055aa0c9508e80a08a4b2c68ecc6b022cb55692d5bd9fa6b928976c61ca30bdd

技术说明

  • 算法:采用国密 SM3 哈希算法,内部使用 SM3Helper.ComputeSM3Hash(input) 计算。
  • 输入字符串以 UTF-8 编码参与计算,生成 256 位(32 字节)哈希摘要。
  • 输出格式:outputFormat 为 1 时输出小写十六进制字符串(BitConverter.ToString 去除连字符并转小写);其他值(含默认 0)输出 Base64 字符串。

错误处理

错误场景返回值
输入字符串为空#VALUE!
计算过程异常#VALUE!
outputFormat 取非 0/1 的值按 Base64 输出(switch 默认分支)

基于源代码最新版本文档