AES-加密JS和PHP - javascript

我对用cryptojs加密的解密数据有问题。有时它有时不起作用,如果起作用,则返回“消息”,但如果声明,则返回垃圾。

    var salt = CryptoJS.lib.WordArray.random(128/8); 
    var key256Bits500Iterations = CryptoJS.PBKDF2("password", salt, { keySize: 256/32, iterations: 5 });
    var iv  = CryptoJS.enc.Hex.parse('1011121c1d1e1f');
    var encrypted = CryptoJS.AES.encrypt("Message", key256Bits500Iterations, { iv: iv });  
    var data_base64 = encrypted.ciphertext.toString(CryptoJS.enc.Base64); 
    var iv_base64   = encrypted.iv.toString(CryptoJS.enc.Base64);       
    var key_base64  = encrypted.key.toString(CryptoJS.enc.Base64);

的PHP

 $encrypted = base64_decode($_POST['data']); /
    $iv        = base64_decode($_POST['iv']);
    $key       = base64_decode($_POST['key']); 
    $plaintext = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, rtrim($key, "\t\0\r\n "), rtrim($encrypted, "\t\0\r\n "), MCRYPT_MODE_CBC, $iv ), "\t\0\r\n ");

我想继续使用cryptoJS。

参考方案

最后,我结束了:
http://wiki.birth-online.de/snippets/php/aes-rijndael
http://wiki.birth-online.de/snippets/javascript/aes-rijndael

但是它仍然需要一些调整,因此:

$crypted = rtrim($_POST['msg'],'\t\0\r\n ');
$crypted = str_replace(" ","+",$crypted);
$password = 'itsmysecret';
$blocksize = 256; 
$decrypted =  AES::decrypt($crypted, $password, $blocksize);

现在可以了。

如何在没有for循环的情况下在Javascript中使用Django模板标签 - javascript

我想在JavaScript中使用模板变量:我的问题是在javascript代码中使用for循环,for循环之间的所有事情都会重复..但我不想要....下面粘贴了我的代码..有人可以告诉我更好的方法吗这..因为这看起来很丑..这是我的代码: {% block extra_javascript %} <script src="/static/js…

使用JS和PHP更改弹出窗口背景图像 - javascript

我有一个JS函数:function zoom(now) { document.getElementById("popup").style.display = "block"; document.getElementById("photos").style.backgroundImage = …

打印二维阵列 - javascript

我正在尝试打印子元素。在this example之后。怎么做?。$myarray = array("DO"=>array('IDEAS','BRANDS','CREATIVE','CAMPAIGNS'), "JOCKEY"=>a…

执行onclick时获得意外令牌 - javascript

我正在使用onclick事件从PHP调用JS函数。这是我的代码:我在一个函数中,因此我需要通过PHP来完成它,因为然后我会返回:$html = '<input type="checkbox" checked value="1" id="setGetSku" name="se…

Javascript到PHP的转换 - javascript

我有一个libphonenumber软件包的javascript端口,它具有以下功能:function cleanPhone(a){ a=a.replace(/[^\d\+]/g,""); return a="+"==a.substr(0,1)?"+"+a.replace(/[^\d]/g,…