単純なテキスト (5 ~ 6 個の数字および/または文字) の双方向暗号化を作成する方法を探しています。問題は、php で暗号化を行い、Javascript で復号化したいということです。PHPの場合、mcrypt_encodeを使用してテストし、動作するようになったため、javascriptで復号化しようとすると(Crypto-jsライブラリを使用しています- http://code.google.com/p/crypto-js / ) 結果が得られません。私が使用しているphpコードは次のとおりです。
$key = "oijhd981727783hy18274";
$text = "1233";
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_256, '', MCRYPT_MODE_CBC, '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC,$iv);
echo base64_encode($crypttext);
そして、ここに私が使用しているJavascriptコードがあります:
var encrypted = CryptoJS.enc.Base64.parse("LiJU5oYHXRSNsrjMtCr5o2ev7yDFGZId85gh9MEXPeg=");
var key = 'oijhd981727783hy18274';
var decrypted = CryptoJS.AES.decrypt(encrypted, key);
document.write( decrypted.toString(CryptoJS.enc.Utf8) );
私はちょうどテストしているので、php からの出力を JS に直接コピーして貼り付け、結果が返されるかどうかを確認しますが、それは起こりません。私は暗号化/復号化の部分が初めてなので、何か不足している可能性があります。どんな提案でも大歓迎です。
余談ですが、ここで他のタイプの通信を使用してデータを転送することについて多くの提案を読んだので、この文字列をサードパーティのソフトウェアに渡す必要があるため、この場合は不可能です。 javascriptのみを編集するためのアクセス権がある安全な領域で、これが、テキストをphpで暗号化し、それをWebサイトのソース内に配置しようとしている理由です。そこから、サードパーティのソフトウェアが暗号化されたときにそれを読み取ります。そして、それを安全なセクションに転送します。そこで、Javascript を介して暗号化を解除する必要があります (そこでは php にアクセスできません)。