当选择加密且 iv 填写为空时,请仔细阅读:
1、如果 iv 填写为空,服务端会自动填充一个 16 位伪随机字节串。因为服务端生成的 iv 值是 byte 类型,所以前端显示时转换为十六进制字符串。
2、如何把十六进制转换为二进制?比如:您可以通过 PHP 函数 hex2bin 转换为二进制值。您可以通过 Go 函数 strconv 转换为二进制值。
3、该工具会自动去除 “加解密内容、iv、秘钥” 左右两边多余的空格。
关于数据填充算法,本工具只提供一种 PKCS#7 说明如下:
顾名思义,NoPadding 就是不填充的意思。其缺点是要求明文必须是16字节
的整数倍。几乎不会使用。
言简意赅,就是缺几补几。例如:数据体1234567890AA
差4补齐16字节,则在数据末尾增补的内容是数字4。
准确来讲:AES加密没有PKCS#5。AES的块大小是16bytes,而PKCS#5只能用于8bytes。
数据长度不对齐时使用0填充。仅适合以\0
结尾的数据,缺点没办法区分真实数据与填充数据。几乎不会使用。