#01
什么是 SM3?
SM3(密码杂凑算法)由中国国家密码管理局在 2010 年发布,是国密算法家族中的一员。它将任意长度的消息压缩成固定 256 位(32 字节)的摘要值,通常以 64 个十六进制字符的形式展示。
作为国密体系的杂凑标准,SM3 广泛应用于电子签名、数据完整性校验、身份鉴权、数字证书、金融 IC 卡、区块链哈希计算等领域。它的安全强度与 SHA-256 相当,运算速度也接近,是国产密码系统替代 SHA-2 的首选方案。
SM3 属于单向哈希函数:输入相同得到相同摘要,但无法从摘要反推原始输入。它的运算过程包括消息填充、消息扩展、迭代压缩三个阶段,每一次输入都会被按 512 位分组处理,最终产生 256 位摘要输出。
我们的在线 SM3 工具支持即时计算与大小写切换,方便开发者在日常工作中快速使用国密标准。
#02
SM3 的常见问题
以下是开发者在使用 SM3 时最常见的几个问题:
- SM3 可以解密吗?:不可以。SM3 是单向哈希算法,过程不可逆,无法从摘要还原原始数据。
- SM3 与 MD5/SHA-256 的差异:SM3 输出 256 位,安全强度与 SHA-256 相当;MD5 仅 128 位且易受碰撞攻击,在安全场景中应替换为 SM3 或 SHA-256。
- 注意字符编码:对中文字符串计算 SM3 时,务必约定统一的编码(推荐 UTF-8),否则不同编码产生不同字节序列会导致摘要不一致。
- 注意行尾符差异:Windows 上的
与 Linux 上的
不同,相同文本文件在不同系统下计算 SM3 可能得到不同值。
- 不要把 SM3 当密码存储:直接用 SM3 存储密码仍易受彩虹表攻击。如需存储密码,应使用带随机盐的 HMAC-SM3 或 bcrypt/Argon2。
另外一个实用建议:在与国密系统(如政务、金融)对接时,通常需要使用 SM3 作为摘要算法。与 SHA-256 相比,虽然两者的安全强度在同一量级,但 SM3 能满足合规要求。我们的工具提供标准 SM3 实现,方便您快速验证。
#03
数据安全与隐私说明
尽管 SM3 是单向不可逆的哈希算法,使用它的工具依然会处理可能敏感的原始文本(如业务参数、凭据片段、调试日志等)。选择哪一款工具直接关系到您的数据隐私。
本页提供的 SM3 在线工具 采用纯前端实现,具备以下隐私优势:
- 100% 浏览器本地计算:所有 SM3 运算均由您浏览器中的 JavaScript 完成,不会向任何服务器发送输入内容或计算结果。
- 无 Cookie、无追踪:页面不包含第三方统计脚本,不设置 Cookie 或本地存储追踪项。
- 页面关闭即销毁:输入内容仅保存在当前页面内存中,关闭页面即被销毁。
- 可离线使用:下载或缓存页面后,即使断网也可继续计算,适合处理高敏感数据。
在使用任何哈希工具时,请遵循最小原则:如果输入的是高敏感信息,优先选择支持本地计算的工具;如条件允许,在断网环境下打开页面后再输入;不要使用要求上传文件的工具。
综合来看,SM3 的价值在于"国产标准 + 与 SHA-256 同级安全 + 生态兼容"。只要您能正确选择保护隐私的本地工具,它就是开发者工具箱中值得信赖的一项。