0

从这里使用相同的(基本)代码但切换到 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

我认为这是一个填充问题,但即使我将字符串填充到正确的长度,我偶尔也会得到垃圾,并且通常需要填充的字符串偶尔会恢复正确。

这里发生了什么?

4

1 回答 1

0

正如@Jack 在评论中指出的那样,这显然是一个常见问题。此处的代码用于删除加密数据末尾的控制字符。

在这里转载以供后代使用:

$data = preg_replace( "/\p{Cc}*$/u", "", $data);
于 2012-08-30T17:58:11.733 回答