我正在尝试做的是将加密消息和相应的密钥(双向加密)发送到 php 页面以对其进行解密,然后在响应中返回结果。
这是我尝试使用 jquery 发送的加密消息的示例。
var message = 'oPnHK7DE33xOLZok/23a92XH9NI3SlHGCulnh6+IuZN4cGhymYm5yxOmDynCDAG8u+cAbJ4KifxzsWsGgmTXoZoAtjkAhph/eWyuwMNfviNtgmz4x02JVJ6Rc6wDsqzzd6Mrl88ZZXyEshD1/+9JRS9rNalCtv//pC2FRAZMQhH5wxDn9kb6JITSs/aagUGFbLmq+jxg5ty55SKmri6IJg==';
var key = 'password';
$.post('decodeMessage.php?message=' + encodeURIComponent(message) + '&key=' + key, function(data) {
// do stuff with returned data here
});
接收php代码如下
<?php
$encrypted = rawurldecode($_POST['message']);
$key = $_POST['key'];
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
echo $decrypted
?>
我遇到的问题是它只是返回乱码而不是实际解码消息。
通过将 $encrypted 的值设置为在 ajax 请求中传递的编码值,我已经在没有 ajax 的情况下对此进行了测试,它工作正常。
如果有人能给我任何关于为什么会发生这种情况的指导,我将不胜感激。
非常感谢。