【发布时间】:2012-08-25 10:44:26
【问题描述】:
使用来自here 的相同(基本)代码但切换到 MCRYPT_RIJNDAEL_128,我现在从 php mcrypt_decrypt 中获取正确的数据,除非在某些情况下,它会在我的消息末尾填充一个看似随机的换行符二进制字符。
例如,以下内容是从解密请求中返回的:
{"messageData":{"identity":"test","msg_id":0,"token":"fakeToken58586"},"messageName":"fetchSavedData_request"}\n\b\b\b\b\b\b\b\b
我认为这是一个填充问题,但即使我将字符串填充到正确的长度,我偶尔也会得到垃圾,并且通常需要填充的字符串偶尔会恢复正确。
这是怎么回事?
【问题讨论】:
-
发送到 mcrypt 的代码是通过 crypto++ 完成的。
-
我认为我以前在手册中看到过这个;解码后的字符串并不总是正确填充 \0 ...您使用的是最新的 php 版本吗? au2.php.net/mdecrypt_generic
-
不幸的是很难说。我为 ubuntu 获取了 php5-mcrypt 包。