SM4 加解密
国密 SM4 CBC/ECB 加解密,PKCS#7 与 NoPadding 可选。
SM4 密钥固定 16 字节(128 位):Hex 32 字符,或恰好 16 个 ASCII 字符
IV 为空:CBC 模式需要 16 字节 IV(32 个 Hex 字符),可点击「随机 IV」生成
字符 0字节 0行 0
SM4-CBC 密文
填写密钥与 IV 后点击「加密」。PKCS#7 会把明文填充到 16 字节整数倍;NoPadding 要求输入字节数本身就是 16 的整数倍。
CBC / PKCS#7 示例
- 密钥(UTF-8):
DevKit-SM4-Key12(16 个 ASCII 字符;Hex 形式4465764b69742d534d342d4b65793132) - IV(Hex):
0123456789abcdeffedcba9876543210 - 明文(UTF-8):
国密 SM4 分组加密示例 - 密文(Hex,node 真实计算):
38aca3c7539d7e6fff13841268b72c1eb3337a7658b22591e65d1e6cc6ca8ef8
点击「加密示例」现场计算,结果应与上值一致;点击「解密示例」载入该密文现场解密,应还原出中文明文(node 已验证往返一致)。
参数约束
- 密钥固定 16 字节:Hex 输入须 32 个字符;UTF-8 输入须恰好编码为 16 字节(16 个 ASCII 字符,中文等多字节字符会超长)。
- CBC 需要 16 字节 IV(Hex 32 字符);ECB 无 IV(安全性弱,仅作兼容用途)。
- PKCS#7 自动填充/去填充(去填充失败说明密钥错误或密文被修改);NoPadding 要求输入字节数为 16 的整数倍,解密输出不剔除任何字节。
- 密文必为 16 字节的整数倍:解密输入长度不满足会直接报错。
什么时候用「SM4 加解密」
国密对称加密联调,需要按约定的模式与填充方式生成或解开密文。
使用要点
- 支持 CBC / ECB 模式,PKCS#7 与 NoPadding 可选。
- 密钥与 IV 编码可配,密文同时给出 Hex 与 Base64。
- 优先确认服务端要求的填充方式与 IV 拼接口径。
相关工具
SM4 加解密与其他 44 个工具一样,全部计算都在你的浏览器里完成:输入、密钥与文件不会发送到服务器,页面首次加载后可离线使用。