SM3 (国密) 哈希计算

免费在线 SM3 (国密) 哈希计算 工具。100% 本地计算,数据不离开您的设备,隐私安全有保障。

General
Password Hashing / KDF
Specialized
Deprecated
输出

结果将显示在这里...

输入 计算哈希

使用指南

关于 SM3

SM3 是中国国家密码管理局于 2010 年发布的密码哈希算法,是中国商用密码标准(GM/T 0004-2012)的重要组成部分。SM3 产生 256 位(64 字符)哈希值,安全性与 SHA-256 相当,专为中国密码应用场景设计。SM3 广泛应用于中国的金融、政务、电信等领域,是国密算法体系的核心组件之一。根据《中华人民共和国密码法》,涉及国家安全、国计民生的重要领域应使用国密算法。

国密标准:SM3 是中国商用密码标准的哈希算法,与 SM4 (对称加密)、SM2(非对称加密)、SM9(标识密码)共同构成完整的国密算法体系。在中国境内的金融、政务、电信等关键领域,推荐或强制使用国密算法

使用步骤

SM3 是单向哈希函数,只能计算哈希值,无法反向解密:

1. 输入内容在左侧输入框粘贴需要计算哈希的文本或数据
2. 计算哈希点击「计算哈希」按钮,在本地高效计算
3. 复制结果点击右侧「复制」按钮获取 64 位十六进制哈希值
隐私保护:所有计算在浏览器本地高速完成,数据不会上传服务器,完全离线处理。

算法特点

SM3 基于 Merkle-Damgård 结构,借鉴了 SHA-256 的设计思想,具有以下技术特点:

国密标准中国商用密码标准(GM/T 0004-2012),符合《密码法》要求
256 位输出产生 256 位(64 字符)哈希值,与 SHA-256 输出长度相同
高安全性抗碰撞、抗原像、抗第二原像攻击,安全性与 SHA-256 相当
消息扩展使用 132 轮消息扩展(SHA-256 为 64 轮),增强安全性
本土化设计针对中国应用场景优化,与国密算法体系无缝集成
合规要求:根据《中华人民共和国密码法》和相关行业规范,金融、政务、电信等关键领域的密码应用应使用国密算法。如果您的应用涉及这些领域,应优先使用 SM3 而非 SHA-256

应用场景

SM3 广泛应用于中国的关键信息基础设施和商用密码领域:

金融行业银行、证券、保险等金融机构的数字签名、数据完整性验证
政务系统电子政务、电子证照、政府数据交换的完整性保护
电信运营移动通信、物联网设备的身份认证和数据保护
区块链国内区块链项目(如 FISCO BCOS)使用 SM3 作为哈希算法
数字证书国密 SSL 证书(如 SM2-SM3-SM4 套件)使用 SM3 进行签名
文件校验政府、企业内部文件的完整性验证和防篡改

常见问题

Q: SM3 和 SHA-256 有什么区别?

A: 标准来源:SM3 是中国国家密码管理局发布的商用密码标准(2010), SHA-256 是美国 NIST 发布的联邦标准(2001)。安全性:两者安全性相当,都是 256 位输出,抗碰撞复杂度为 2^128。算法设计:SM3 使用 132 轮消息扩展,SHA-256 使用 64 轮;SM3 的压缩函数略有不同。性能:两者性能接近,SM3 在某些场景下略快。合规性:在中国关键领域,SM3 符合《密码法》要求,SHA-256 不符合。推荐:中国境内关键领域使用 SM3,国际应用使用 SHA-256。

Q: 哪些场景必须使用 SM3?

A: 根据《中华人民共和国密码法》(2020 年 1 月 1 日施行)和相关行业规范:强制使用:涉及国家安全、国计民生、社会公共利益的商用密码产品,必须通过国家密码管理局认证,使用国密算法(包括 SM3)。推荐使用:金融(银行、证券、保险)、政务(电子政务、电子证照)、电信(移动通信、物联网)、能源(电力、石油)、交通(铁路、民航)等关键领域。可选使用:一般商业应用、个人应用可以自主选择,但使用国密算法有助于提升安全性和合规性。注意:具体要求以最新的法律法规和行业标准为准。

Q: SM3 可以用于密码存储吗?

A: 不推荐直接使用。虽然 SM3 是安全的哈希算法,但它的设计目标是快速计算,容易受到暴力破解。正确做法:使用专门的密码哈希算法如 Argon2(OWASP 推荐)、bcrypt 或 PBKDF2-SM3(使用 SM3 作为底层哈希函数)。国密方案:如果必须使用国密算法,可以使用 PBKDF2-SM3(密钥派生函数,基于 SM3)或 Argon2-SM3(Argon2 的 SM3 变体,需要自行实现)。注意:PBKDF2-SM3 需要足够高的迭代次数(≥ 600k)才能抵御暴力破解。

Q: 如何在国际应用中使用 SM3?

A: 兼容性考虑:SM3 主要在中国使用,国际支持有限。如果应用需要国际化,建议同时支持 SM3 和 SHA-256双算法方案:1)协商机制:客户端和服务端协商使用的算法(中国境内用 SM3,境外用 SHA-256)。2)双重签名:同时使用 SM3 和 SHA-256 签名,确保国内外都能验证。3)算法标识:在数据中标识使用的算法(如 OID),验证时根据标识选择算法。库支持:OpenSSL 1.1.1+ 支持 SM3,GmSSL 是专门的国密算法库。

Q: SM3 和 SM2 有什么关系?

A: SM3 和 SM2 是国密算法体系的两个核心组件,经常配合使用。SM3:哈希算法,用于数据完整性验证、消息摘要。SM2:非对称加密和数字签名算法(基于椭圆曲线),用于加密和签名。配合使用:SM2 数字签名时,先用 SM3 对消息计算哈希值,然后用 SM2 私钥对哈希值签名。这类似于 RSA-SHA256(RSA 签名 + SHA-256 哈希)。国密套件:SM2-SM3-SM4 是完整的国密算法套件,分别负责非对称加密/签名、哈希、对称加密。应用:国密 SSL 证书使用 SM2-SM3-SM4 套件,替代传统的 RSA-SHA256-AES 套件。

Q: 如何验证 SM3 实现的正确性?

A: 标准测试向量 GM/T 0004-2012 标准提供了官方测试向量。例如,输入 “abc”(3 字节),SM3 输出应为 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0对比工具:使用多个独立实现(如 OpenSSL、GmSSL、本工具)计算相同输入,对比结果是否一致。认证产品:如果用于商用密码产品,应使用通过国家密码管理局认证的密码模块。开源实现:GmSSL(GitHub)是权威的国密算法开源实现,可作为参考。

使用场景

推荐:金融行业数字签名

银行、证券、保险等金融机构的数字签名应使用国密算法。典型流程:使用 SM3 对交易数据计算哈希值,然后用 SM2 私钥对哈希值签名。验证时,用 SM2 公钥验证签名,并用 SM3 重新计算哈希值对比。这符合中国人民银行、银保监会等监管机构的要求。

推荐配置:
  • ✅ SM2-SM3(国密标准,金融推荐)
  • SM4 (对称加密,配合使用)
  • ✅ 使用通过国密认证的密码模块
  • 💡 考虑双算法方案(SM3 + SHA-256)提升兼容性
推荐:政务系统数据交换

电子政务、政府数据交换平台应使用国密算法保护数据完整性。使用 SM3 对交换的数据计算哈希值,确保数据在传输过程中未被篡改。配合 SM4 加密和 SM2 签名,构建完整的安全体系。

推荐配置:
  • ✅ SM3(数据完整性)
  • ✅ SM4(数据加密)
  • ✅ SM2(数字签名)
  • 💡 遵循《政务信息系统密码应用技术要求》
推荐:国密 SSL 证书

国密 SSL 证书使用 SM2-SM3-SM4 套件,替代传统的 RSA-SHA256-AES 套件。SM3 用于证书签名和 TLS 握手过程中的消息认证。适用于政府网站、金融机构、关键信息基础设施等需要符合《密码法》要求的场景。

推荐配置:
  • ✅ SM2-SM3-SM4(国密 SSL 标准套件)
  • ✅ 双证书方案(国密 + RSA,兼容国内外)
  • ✅ 使用支持国密的浏览器和服务器
  • 💡 参考《SSL VPN 技术规范》(GM/T 0024-2014)
推荐:区块链和分布式账本

国内区块链项目(如 FISCO BCOS、长安链)使用 SM3 作为哈希算法,符合国家对区块链技术的监管要求。SM3 用于区块哈希、交易哈希、Merkle 树等场景,确保区块链数据的完整性和不可篡改性。

推荐配置:
  • ✅ SM3(国内区块链推荐)
  • SHA-256 (国际区块链标准)
  • ✅ 配合 SM2 实现国密区块链
  • 💡 参考《区块链密码应用技术要求》
推荐:文件完整性校验

政府、企业内部文件的完整性验证应使用 SM3。下载文件后,使用 SM3 计算哈希值,与官方提供的值对比。如果哈希值一致,说明文件完整且未被篡改。对于涉密文件,应配合 SM2 数字签名,确保文件来源可信。

推荐配置:
  • ✅ SM3 + SM2 签名(最高安全性)
  • ✅ SM3 校验和(标准做法)
  • ✅ 使用国密认证的文件管理系统
  • 💡 定期审计文件完整性
推荐:物联网设备认证

电信运营商、智能家居、工业物联网等场景应使用国密算法。SM3 用于设备身份认证、固件完整性验证、数据完整性保护。配合 SM4 轻量级加密,适合资源受限的物联网设备。

推荐配置:
  • ✅ SM3(设备认证和数据完整性)
  • ✅ SM4(轻量级加密)
  • ✅ SM2(设备证书和签名)
  • 💡 参考《物联网密码应用技术要求》

最佳实践建议

  • 在中国境内的金融、政务、电信等关键领域,应优先使用 SM3 符合《密码法》要求。
  • 如果应用需要国际化,建议同时支持 SM3 和 SHA-256,根据地域或用户选择算法。
  • 不要直接用 SM3 存储密码,应使用 PBKDF2-SM3 或 Argon2 等专门的密码哈希算法。
  • 使用国密算法时,应选择通过国家密码管理局认证的密码模块,确保合规性和安全性。
  • SM3 通常与 SM2(签名)、SM4(加密)配合使用,构建完整的国密安全体系。

讨论与反馈

0 条评论