DevKit源码

SM4 加解密

国密 SM4 CBC/ECB 加解密,PKCS#7 与 NoPadding 可选。

模式
填充
密钥编码
明文编码
输出编码
未执行CBCPKCS#7IV 0 字节

SM4 密钥固定 16 字节(128 位):Hex 32 字符,或恰好 16 个 ASCII 字符

IV 为空:CBC 模式需要 16 字节 IV(32 个 Hex 字符),可点击「随机 IV」生成

明文(UTF-8 文本)
字符 0字节 0行 0
SM4-CBC 密文

填写密钥与 IV 后点击「加密」。PKCS#7 会把明文填充到 16 字节整数倍;NoPadding 要求输入字节数本身就是 16 的整数倍。

示例向量与说明(node + sm-crypto 真实计算,往返已验证)

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 个工具一样,全部计算都在你的浏览器里完成:输入、密钥与文件不会发送到服务器,页面首次加载后可离线使用。