我正在寻找一种方法来对简单文本(5 到 6 个数字和/或字符)进行 2 路加密。问题是我想在 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 中的文本并将其放在网站的源代码中,第三方软件将从那里读取它,因为它是加密的并将其转移到安全部分,在那里我需要通过 Javascript 将其解密(我无法访问那里的 php)。