我正在尝试做的是发送一个加密的消息和相应的密钥(双向加密)到一个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
?>我的问题是,它只是返回胡言乱语,而不是真正解码消息。
我在没有使用ajax的情况下对此进行了测试,方法是将$encrypted的值设置为在ajax请求中传递的编码值,它工作得很好。
如果有人能为我提供任何关于为什么会发生这种情况的指导,我将不胜感激。
非常感谢。
发布于 2013-07-11 20:27:58
而是将数据作为对象发送。
$.post('decodeMessage.php', {message: message, key: key}, function(data) {
// Wohoo
});您看,jQuery会在晦涩的代码层下为您处理这些内容:-)
发布于 2013-07-11 20:28:27
这样试试吧。
$.post("decodeMessage.php", { message: message, key: key },function(data){
// ....
});发布于 2013-07-11 20:28:27
您传递了一个查询字符串
$.post('decodeMessage.php?message=' + encodeURIComponent(message) + '&key=' + key, function(data) {然后使用$_GET代替post
$encrypted = rawurldecode($_GET['message']);
$key = $_GET['key'];如果希望在PHP中将元素作为POST变量处理,请将jquery代码更改为如下所示
var data = { message: message, key: key };
$.post('decodeMessage.php', data, function(data) {
//handler
});https://stackoverflow.com/questions/17593339
复制相似问题