Skip to main content
UFOZoo

SM3哈希计算器 中国国密标准GM/T 0004

SM3 哈希计算器,中国国密密码标准 GM/T 0004-2012。256 位输出,政府机关和金融机构强制使用。国密体系核心组件。

更新于 2026-08-16

相关工具

功能特性

  • 在线计算 SM3 哈希值:中国国家密码哈希标准 GM/T 0004-2012
  • 实时 256 位哈希计算,64 个十六进制字符输出
  • 一键复制、保存为 .txt 文件,支持大小写模式
  • 中国政务、金融和公安系统强制使用的哈希算法
  • 支持 SM3 校验和比对
  • 哈希比对:粘贴预期 64 字符 SM3 哈希即时验证匹配状态
  • 实时输入长度显示:开发时字符数和字节数与哈希同步展示
  • 无需安装国密密码学库,在任何设备上计算 SM3
  • 会话历史:保留本次 SM3 结果,便于比较多个完整性检查

使用方法

  1. 1在上方输入框中输入或粘贴文本。
  2. 2哈希摘要即时显示,无需刷新页面。
  3. 3切换大小写按钮改变十六进制输出格式。
  4. 4点击复制图标将哈希值复制到剪贴板,或使用保存保存为 .txt 文件。
  5. 5在校验栏粘贴预期哈希值即可比对。
  6. 6如何验证中国政府系统的 SM3 合规性:计算数据的 SM3 哈希,与 GB/T 32905 或 GM/T 0004 标准文档中的预期校验和比对。
  7. 7如何为金融系统集成生成 SM3 哈希:与中国银行系统集成时,计算交易数据的 SM3 哈希以满足强制性的国密密码学要求。
  8. 8如何比较 SM3 与 SHA-256 输出:在两种工具中输入相同文本。两者都产生 64 字符哈希,但因压缩函数不同而输出完全不同。
  9. 9如何在 TLS 1.3 连接中验证 SM3:RFC 8998 定义 SM2/SM3/SM4 密码套件。用此工具为符合国密的 TLS 配置中的证书验证生成 SM3 哈希。
  10. 10如何测试 SM3 实现正确性:输入 GM/T 0004 标准中的已知 SM3 测试向量,验证输出是否与预期哈希匹配以确认实现正确。

常见问题

什么是 SM3?

SM3 是中国国家密码哈希标准(GM/T 0004-2012),由国家密码管理局发布。输出 256 位哈希,是国密密码学体系的核心组件,与 SM2(公钥算法)和 SM4(分组密码)共同构成国密标准套件。所有中国政府和金融系统强制要求使用。(参见:GM/T 0004-2012)

SM3 与 SHA-256 对比如何?

SM3 和 SHA-256 都输出 256 位哈希且基于 Merkle-Damgard 结构,但 SM3 使用不同的压缩函数,消息扩展更复杂(132 字 vs 64 字)。SM3 通常被认为有更大的安全冗余,但比 SHA-256 稍慢。(参见:GM/T 0004-2012)

中国为什么要有自己的哈希标准?

与俄罗斯(GOST)和其他国家一样,中国制定自己的密码学标准以确保技术主权、避免依赖外国算法,并满足特定的国家安全需求。

SM3 获国际认可吗?

SM3 已提交 ISO/IEC 并正在考虑国际标准化。它也通过 RFC 8998 在 TLS 1.3 中得到认可,使中国密码学标准与国际系统互操作成为可能。

不在中国需要用 SM3 吗?

如果您的软件需要与中国政府系统、中国金融机构互操作,或需遵守中国密码法,则可能需要 SM3。对于非中国场景的通用应用,SHA-256 或 SHA-3 更合适。

SM3 输出多少十六进制字符?

SM3 产生 256 位哈希,显示为 64 个十六进制字符,与 SHA-256 输出长度相同。

SM3 安全吗?

安全。SM3 自 2010 年发布以来经历了广泛的密码分析,未发现实际攻击。被认为具有与 SHA-256 相当或略大的安全冗余。

什么是国密密码学套件?

国密是中国国家密码标准套件,包括 SM2(椭圆曲线公钥算法)、SM3(密码学哈希)、SM4(分组密码)、SM9(基于身份的密码学)等。SM3 是该套件的哈希组件。

SM3 实际用在哪里?

SM3 用于中国政府文档签名、电子身份证、银行交易验证、VPN(通过 RFC 8998 TLS 密码套件)、中国的区块链项目以及受中国密码法约束的任何系统。

SM3 比 SHA-256 快吗?

SM3 在大多数实现中比 SHA-256 稍慢,因其更复杂的消息扩展(132 个扩展字 vs 64 个)。软件实现中差异通常在 10-20%。

SM3 支持 HMAC 吗?

支持。HMAC-SM3 已定义并在一些中国密码学协议中使用。它遵循标准 HMAC 构造,SM3 为底层哈希函数。

SM3 支持哪些输出尺寸?

SM3 始终产生正好 256 位(64 十六进制字符)输出。与一些现代哈希(BLAKE2、SHA-3)不同,SM3 不支持可变长度或可扩展输出。

SM3 能用来做密码哈希吗?

不能直接用:SM3 和 SHA-256 一样是为完整性设计的快速哈希,国密标准套件里没有刻意变慢的密码哈希。国内实际系统通常的做法是用 PBKDF2 把 SM3 作为底层 PRF(高迭代次数,如 1 万次以上),或基于 SM3 做加盐迭代。不受国密合规约束的话,直接用 Argon2id 或 bcrypt 更简单也更强。绝不能把密码存成裸 SM3 哈希:相同密码会产生相同摘要。

SM3 和 SM4 有什么区别?我总是搞混。

在国密套件里分工不同:SM3 是哈希,无密钥的 256 位单向指纹,用于完整性校验和 SM2 签名内部;SM4 是分组密码,128 位密钥的对称加密,用于批量加密数据。可以这么记:SM4 把数据打乱让人读不了,SM3 产生校验值让你知道数据有没有被改。典型的混合方案是:SM2 交换密钥,SM4 加密数据,SM3 校验完整性。

国密合规要求下,能用 SHA-256 代替 SM3 吗?

不能,当法规或合同强制要求国密时,SHA-256 不满足要求。中国政府、银行和公安系统对 SM2/SM3/SM4(GM/T 0004、GB/T 32905)是硬性规定,第三方审计查的是用了什么算法,不只是安全级别。不受这些要求约束的系统,用 SHA-256 或 SHA-3 完全没问题。拿不准就问验收方适用哪个标准,猜错了意味着认证失败。

SM3 和 SHA-256 都输出 64 个字符,校验时能混着用吗?

不能,绝对不要混。长度相同、摘要完全不同:SM3 的压缩函数与 SHA-256 不同,同一输入的哈希不同,一个算法算出的校验和永远匹配不上另一个。记录校验和时把算法名一起记下来;验证失败时第一件事就是确认参考值是用哪个算法算的,这是实际使用 SM3 最常见的错误。