私がやろうとしているのは、暗号化されたメッセージと対応するキー (双方向暗号化) を 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 なしでこれをテストしましたが、正常に動作します。
なぜこれが起こっているのかについて誰かが私にガイダンスを提供してくれれば幸いです。
どうもありがとう。