国密SM3

在线国密SM3哈希计算工具 — 纯浏览器端实现 GM/T 0004-2012 标准

SM3 哈希计算

SM3 哈希 (Hex) 64字符
等待输入...
SM3 哈希 (Base64) 44字符
等待输入...
关于 SM3

什么是 SM3?

SM3 是中国国家密码管理局发布的密码哈希函数标准(GM/T 0004-2012),输出 256 位(32 字节)哈希值。SM3 采用 Merkle-Damgård 结构,消息分组长度为 512 位,经过 64 轮压缩函数迭代产生最终哈希值。SM3 在设计上吸收了 SHA-256 的优点,并在布尔函数和置换函数上进行了改进,具有更高的安全性冗余。

SM3 vs SHA-256

特性SM3SHA-256
输出长度256 位256 位
分组长度512 位512 位
轮数6464
布尔函数FFj / GGj (分两段)Ch / Maj (统一)
置换函数P0 / P1 (含循环移位)Sigma0 / Sigma1
标准GM/T 0004-2012 (中国)FIPS 180-4 (美国)
应用领域中国 PKI、电子政务全球通用

应用场景

SM3 在中国公钥基础设施(PKI)、电子认证服务、数字签名(SM2 算法)、区块链(中国区块链服务网络 BSN)、以及 SSL 证书(国密 TLS)中广泛应用。自 2018 年起,SM3 已成为国际标准 ISO/IEC 10118-3:2018 的一部分。

常见问题 (FAQ)
1. SM3 和 SHA-256 有什么区别?
SM3 和 SHA-256 都输出 256 位哈希值,但 SM3 使用了不同的布尔函数(FFj、GGj)、置换函数(P0、P1)和初始值。SM3 是中国国家密码标准(GM/T 0004),主要用于中国 PKI 和国密应用。
2. SM3 安全吗?
SM3 被认为是安全的密码哈希函数,具有抗碰撞性、抗原像性和抗第二原像性。目前没有已知的有效碰撞攻击。SM3 的设计比 SHA-256 在部分操作上更保守,安全性冗余更高。
3. SM3 可以用于密码存储吗?
理论上可以,但建议使用专门的密码哈希函数(如 bcrypt、Argon2 或 PBKDF2)进行密码存储。如果必须使用 SM3,建议配合加盐(salt)并多次迭代(如 HMAC-SM3)。
4. 这个工具会上传我的数据吗?
不会。所有计算在浏览器本地使用纯 JavaScript 完成,您的输入数据不会上传到任何服务器。即使断开网络也能正常使用。
5. SM3 的输出长度是多少?
SM3 输出 256 位(32 字节),在 Hex 格式下显示为 64 个字符,在 Base64 格式下显示为 44 个字符(含填充)。
6. 哪些场合需要使用 SM3?
在中国政府、金融、证券、医疗等领域的电子认证服务系统中广泛使用。如果您需要与中国国密系统进行互操作,或需要符合《中华人民共和国密码法》的要求,需要使用 SM3。
使用说明
文本模式:在输入框中直接输入文本,实时计算 UTF-8 编码的 SM3 哈希值。
Hex 模式:切换至 Hex 模式后输入十六进制字符串(如 616263),计算对应原始字节的哈希值。
文件哈希:点击"选择文件"按钮上传文件,自动计算文件的 SM3 哈希值。
示例按钮:点击"空字符串"、"abc"或标准测试向量快速加载测试数据。
复制结果:点击"复制"按钮将对应格式的哈希值复制到剪贴板。