🔐 对称加密工具

AES-256-CBC 和 SM4-CBC 加解密,密钥和 IV 需为十六进制字符串。


※ AES 使用 Web Crypto API,SM4 为纯 JS 实现。密钥和 IV 必须提供有效的十六进制串,加密输出为 Base64,解密输入需为 Base64。建议测试前先生成随机密钥/IV。

AES 与 SM4 对称加密详解

对称加密是密码学的基础分支,使用同一密钥进行加密和解密。本工具支持 AES 和 SM4 两种分组密码算法,使用 CBC 模式加密。AES 是国际标准(FIPS 197),SM4 是中国国密标准(GB/T 32907),两者均使用 128 位分组大小和 128/192/256 位密钥。

AES 算法原理

AES 由 Joan Daemen 和 Vincent Rijmen 设计(原名 Rijndael),2001 年成为美国标准。AES 支持 128/192/256 位密钥,对应 10/12/14 轮变换。每轮操作包括:SubBytes(S 盒字节替换)、ShiftRows(行移位)、MixColumns(列混淆,最后一轮省略)、AddRoundKey(轮密钥异或)。密钥扩展将原始密钥扩展为各轮所需的轮密钥。AES 的设计保证了高速软件实现和硬件实现效率。

SM4 算法原理

SM4 由吕述望等人设计,2012 年成为国家标准。SM4 使用 128 位密钥和 128 位分组,采用 32 轮 Feistel 结构。每轮使用轮函数 F,包含非线性变换和线性变换。密钥扩展使用与加密结构类似的算法,将 128 位主密钥扩展为 32 个轮密钥。SM4 在安全强度上与 AES-128 等价。

加密模式与填充

CBC(密文分组链接)模式是最常用的加密模式之一,每个分组的明文与前一分组密文异或后再加密。IV(初始化向量)用于第一个分组,必须随机且不可预测。PKCS#7 填充方案将明文末尾填充 N 个值为 N 的字节,使总长度为分组大小的整数倍。其他模式如 ECB(不推荐,相同明文产生相同密文)、CTR(计数器模式)、GCM(认证加密)各有适用场景。

在智能卡中的应用

GlobalPlatform SCP03 使用 AES-128-CMAC 派生会话密钥(S-ENC、S-MAC、S-RMAC、S-DEK),并提供 RECOMMENDED 守卫的完整性保护。SCP02 使用 3DES-CBC 进行密钥派生和 MAC 计算。中国国密体系使用 SM4 替代 AES。在 PBOC 3.0 中,SM4 用于安全报文加密和 MAC 计算。本工具在浏览器端执行加密/解密,使用 Web Crypto API,密钥不离开本地设备。