请仔细阅读:
- 解密: "IV 初始化向量" 需要填写值了,这个省不了呢。
- 如何把十六进制转换为二进制?比如:您可以通过 PHP 函数 hex2bin 转换为二进制值。您可以通过 Go 函数 strconv 转换为二进制值。
- 该工具会自动删除 “内容、iv、秘钥” 前后多余的空格,这个是基础功能了。
- 站长发现很多网站工具、技术文章里 AES-256系列 加密、解密既然没有提及 IV,这是错误的!
- 在 Go 语言中 AES 秘钥的长度(16/24/32)决定不同的加密强度。以CBC加密模式举例,例如:秘钥长度16字节(128位密钥),对应 AES-128-CBC;秘钥长度24字节(192位密钥),对应 AES-192-CBC;秘钥长度32字节(256位密钥),对应 AES-256-CBC。
- Go 1.24 标记 CFB 、OFB 模式为废弃(deprecated),不建议应用新项目,被弃用的根本原因是存在严重的安全与设计缺陷。
关于 AES-CBC 数据填充算法,本工具只提供一种 PKCS#7 说明如下:
NoPadding
顾名思义,NoPadding 就是不填充的意思。其缺点是要求明文必须是16字节的整数倍。业内没人会使用。
PKCS7Padding (推荐)
言简意赅,就是缺几补几。例如:数据体1234567890AA差4补齐16字节,则在数据末尾增补的内容是数字4。
PKCS5Padding
准确来讲:AES加密没有PKCS#5。AES的块大小是16bytes,而PKCS#5只能用于8bytes。
ZeroPadding
数据长度不对齐时使用0填充。仅适合以\0结尾的数据,缺点没办法区分真实数据与填充数据。业内没人会使用。