mcrypt_decrypt()没有返回正确的数据

时间:2016-07-09 19:00:04

标签: php security encryption base64 mcrypt

我将在此处引用代码,但完整代码可以在Pastebin上找到。

我正在使用POST请求与加密服务器之间发送数据(我正在我的第二台服务器上进行加密工作,以增加安全性),这就是为什么所有内容最初都是作为$_POST变量。

所以,基本上发生的事情是我正在使用加密脚本(可以在Pastebin上找到)加密某些数据,然后从中获取加密数据并尝试使用相同的方法对其进行解密。我正在使用mcrypt_decrypt()来解密数据。我已经做了一些实验,当我尝试打印base64_decode()返回的数据时,我没有得到任何价值。我认为这可能与错误有关,但我得到了随机的ASCII字符,例如,这是我最近获得的结果:

  

] A} /7QŢ/&安培; OO

初始化向量与原始数据一起存储,我使用explode()将其分开,格式如下:"IV:Encrypted String"

PHP运行时没有抛出任何错误,我将其基于PHP documentation

加密过程完美无缺,解密脚本能够在解码和解密之前返回加密文本,因此数据到达服务器查找。

如果您需要更多信息,请在评论中提问,我很乐意为您提供!:)

1 个答案:

答案 0 :(得分:0)

数据是否存储在数据库中?如果是这样,您可能需要查看整理设置。 mcrypt_encrypt方法可能会生成无法存储在数据库默认coallition中的字符,这可以解释随机字符。