繁体   English   中英

为什么php通过mcrypt_encrypt()生成的密文长度与C通过openssl加密库生成的密文长度不同

[英]Why the length of cipher text generated by php via mcrypt_encrypt() is different from the one generated by C via openssl encryption library

我从openssl Wiki尝试了此代码该代码通过aes-256算法生成密文。 输入纯文本的长度为512字节。 但是,输出的长度是不同的。 PHP生成长度为512字节的输出,而C生成长度为528字节的密文。

为什么存在这种差异?如何使用aes-256算法在PHP中加密文本,然后在C中解密文本?

您应该查找例如mcrypt_encrypt的注释部分,以使用PKCS#7填充方法填充纯文本消息。 PHP使用零填充直到块边界上的第一个值,而不是通常使用的即席PKCS#7填充方法。

填充为零的问题在于,它对于以00字节结尾的消息不是确定性的,因为在取消填充过程中可能会删除该值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM