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模式下相同明文输出的差异,理解分组密码工作模式与填充机制。