SM4国密算法在线工具 · CBC/ECB模式

符合 GM/T 0002-2012 标准,密钥与 IV 均为16位字符,本地计算,安全合规

🇨🇳 SM4 国密算法工具

GM/T 0002-2012

支持 CBC 与 ECB 模式,密钥与 IV 均需为 16 位字符(128位)。所有运算在本地完成,保障数据安全。

此功能需要在客户端浏览器中运行,当前可能处于服务端渲染环境。

⚡ 使用提示

  • 密钥(Key) 必须为16个ASCII字符(128位),中文字符可能造成长度溢出
  • CBC模式下必须填写16位初始化向量(IV),推荐与密钥不同
  • 加密输出为十六进制字符串;解密时可输入十六进制密文
  • 所有计算均在本地完成,密钥与数据不会上传服务器
  • 解密失败请检查密钥/IV/模式是否与加密时完全一致

关于SM4国密算法在线工具

什么是SM4算法?

SM4(原名SMS4) 是中国国家密码管理局于2012年发布的无线局域网产品使用的分组密码算法,后成为国家密码行业标准 GM/T 0002-2012《SM4分组密码算法》。SM4与国际AES类似,分组长度128位、密钥长度128位,包含32轮非线性迭代。它被广泛应用于电子政务、金融、物联网等需要合规加密的场景。

本工具完全遵循GM/T 0002-2012规范,在浏览器中实现SM4的ECB和CBC模式(PKCS#7填充),让开发者和普通用户能够便捷地进行国密加解密实验,同时所有计算均在本地执行,无隐私泄露风险。

CBC模式 与 ECB模式 的区别

SM4支持多种工作模式,本工具实现了最常用的两种:

  • ECB模式(电子密码本):将明文分成128位的数据块,每块使用相同密钥独立加密。优点是简单、可并行,但相同的明文块会生成相同的密文块,安全性稍弱。
  • CBC模式(密码分组链接):加密前先将当前明文块与前一个密文块(或初始化向量IV)异或,再加密。相同的明文块加密结果不同,能更好隐藏数据模式。CBC模式需要16字节的IV,加解密需使用相同IV。

一般推荐使用CBC模式(尤其对消息完整性有要求时),而ECB适用于短数据或兼容老旧系统。本工具IV与密钥长度均需16位字符,严格遵循SM4标准。

密钥与IV设置规范

SM4密钥固定128位,即16字节。本工具中每个输入字符视为一个字节(ASCII码范围0x00-0xFF),因此密钥必须正好是16个字符。若使用中文字符(多字节),将导致密钥长度超出128位,工具将无法正确加解密。IV的要求与密钥一致:16个ASCII字符。为了便于测试,我们提供了默认密钥 sm4_default_key_,您也可以自定义更复杂的密钥。

典型应用场景

国密合规改造

将旧系统AES加密替换为SM4加密,满足等保、密评要求。本工具可快速验证加解密流程一致性。

API接口调试

对接银行、政务接口时经常遇到SM4加密字段,使用本工具可对报文进行加解密测试,快速定位问题。

学习与研究

直观观察CBC/ECB模式下相同明文输出的差异,理解分组密码工作模式与填充机制。