AES128 CBC 可以使用 0 填充吗?
Can AES128 CBC uses 0-padding?
由于客户端的某些限制,他们在将纯文本传递给 AES alogirhtm 之前用 0x00
填充,而不是正常的 PKCS5/PKCS7 或类似的填充。
虽然它在我的服务器端是可行的,但我有一个问题,即使用 0-padding 是否有效。以纯文本恰好以 0 填充字符结尾为例。服务器端是无法区分的
0-padding 是可接受的填充方法之一吗?如果是,我这边应该如何正确处理填充?
提前致谢。
不确定"ASCII code 0"是什么意思,我假设一个字节的值为0x00? (是的,十六进制仍然是一回事)参见Zero padding:如果原始文件以一个或多个零字节结尾,则零填充可能不可逆,从而无法区分明文数据字节和填充字节.
空填充 (0x00) 可以用于不以空结尾的数据,ASCII 文本就是一个有效的示例。已弃用的 PHP mcrypt 执行此操作,空填充会产生互操作性问题。
所以:是的,空填充对某些数据(例如文本)有效,但对二进制数据无效。最好不要用,PKCS#7.PKCS#5 padding是比较好用的padding.
由于客户端的某些限制,他们在将纯文本传递给 AES alogirhtm 之前用 0x00
填充,而不是正常的 PKCS5/PKCS7 或类似的填充。
虽然它在我的服务器端是可行的,但我有一个问题,即使用 0-padding 是否有效。以纯文本恰好以 0 填充字符结尾为例。服务器端是无法区分的
0-padding 是可接受的填充方法之一吗?如果是,我这边应该如何正确处理填充?
提前致谢。
不确定"ASCII code 0"是什么意思,我假设一个字节的值为0x00? (是的,十六进制仍然是一回事)参见Zero padding:如果原始文件以一个或多个零字节结尾,则零填充可能不可逆,从而无法区分明文数据字节和填充字节.
空填充 (0x00) 可以用于不以空结尾的数据,ASCII 文本就是一个有效的示例。已弃用的 PHP mcrypt 执行此操作,空填充会产生互操作性问题。
所以:是的,空填充对某些数据(例如文本)有效,但对二进制数据无效。最好不要用,PKCS#7.PKCS#5 padding是比较好用的padding.