在线 AES 128 加密 | 在线 AES 256 加密

PKCS7Padding (PKCS#7)

当选择加密且 iv 填写为空时,请仔细阅读:
1、如果 iv 填写为空,服务端会自动填充一个 16 位伪随机字节串。因为服务端生成的 iv 值是 byte 类型,所以前端显示时转换为十六进制字符串。
2、如何把十六进制转换为二进制?比如:您可以通过 PHP 函数 hex2bin 转换为二进制值。您可以通过 Go 函数 strconv 转换为二进制值。
3、该工具会自动去除 “加解密内容、iv、秘钥” 左右两边多余的空格。

知识科普

关于数据填充算法,本工具只提供一种 PKCS#7 说明如下:

NoPadding

顾名思义,NoPadding 就是不填充的意思。其缺点是要求明文必须是16字节的整数倍。几乎不会使用。

PKCS7Padding (推荐)

言简意赅,就是缺几补几。例如:数据体1234567890AA差4补齐16字节,则在数据末尾增补的内容是数字4。

PKCS5Padding

准确来讲:AES加密没有PKCS#5。AES的块大小是16bytes,而PKCS#5只能用于8bytes。

ZeroPadding

数据长度不对齐时使用0填充。仅适合以\0结尾的数据,缺点没办法区分真实数据与填充数据。几乎不会使用。