SM4 加密工具

免费在线SM4加密解密工具,支持ECB/CBC模式与PKCS填充,提供HEX/Base64格式与随机密钥/IV生成,适用于国密算法场景。

设置

密钥与IV设置

加解密

SM4 加密知识

关于 SM4

SM4 是中国国家密码管理局公布的分组密码算法,块大小 128 位,密钥长度 128 位。SM4 被广泛应用于国密标准生态,如 SM TLS/SSLWAPI 无线局域网安全、电子政务与金融行业的合规加密等。

与 AES 的联系与区别

  • 共同点:
    • 都是 128 位分组密码;支持常见模式(ECB/CBC 等)与标准填充(PKCS#5/7)。
    • 在实现与使用方式上高度相似:需要密钥(Key)、可选的初始化向量(IV)、选择模式与填充后对明文分块处理。
  • 不同点:
    • 标准与生态:AES 属于国际标准(FIPS 197),全球通用;SM4 属于中国国家密码标准(GM/T 系列),用于满足本地合规与监管要求。
    • 密钥长度:AES 支持 128/192/256 位;SM4 固定为 128 位。
    • 性能与硬件支持:现代 CPU/GPU 对 AES 有更广泛的硬件加速支持;SM4 的硬件加速支持正在逐步完善,视具体平台而定。
    • 合规性:在中国境内/面向中国业务场景,往往需要使用 SM4 以满足“国密”合规;跨国/通用场景更常用 AES。

ECB 与 CBC 模式对比

项目 ECB CBC
是否使用 IV 是(16 字节)
错误传播 有(块级传播)
并行性 高(可并行) 低(链式依赖)
安全性 低(泄露数据结构) 高(推荐)
典型用途 随机数据、测试 实际业务数据加密
  • ECB:每个 16 字节块独立加密,会泄露数据结构,不推荐用于结构化/重复性强的数据。
  • CBC:使用随机且不可复用的 16 字节 IV,将相邻块链接,能有效掩盖模式特征,业务场景更安全可靠。

填充与对齐

  • PKCS#5/PKCS#7:自动补齐至 16 字节倍数,适用于绝大多数文本与二进制数据。
  • NoPadding:不做填充,明文/密文长度必须是 16 字节的倍数;适用于已经对齐的数据或自定义协议。

使用建议

  1. 模式选择:优先使用 CBC,避免 ECB 处理结构化数据。
  2. IV 管理:CBC 的 IV 必须是加密安全随机数,且每次加密唯一且不可复用
  3. 密钥生成:使用安全随机数生成 128 位密钥;避免弱口令/可预测键值。
  4. 输出格式:密文可用 HEXBase64 表达;跨系统传输推荐 Base64。
  5. 合规考量:在中国境内或涉及国密合规的系统,优先使用 SM4;跨国或国际生态场景则以 AES 为主。