国密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) | Int | 否 | 0 | 0=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 默认分支) |