AES-加密JS&的PHP [英] AES - Crypto JS & PHP

查看:114
本文介绍了AES-加密JS&的PHP的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对用cryptojs加密的解密数据有疑问。有时它有时不起作用,如果可行,则返回消息,但是如果剂量一定,则返回垃圾。

I've problem with decryption data encrypted in cryptojs. Sometimes it works sometimes not, if works it returns "Message", but if dosent it returns garbage.

    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。

I would like to stay on cryptoJS.

推荐答案

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

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

but it still needed some tweaking so:

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

现在可以使用了。

这篇关于AES-加密JS&的PHP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆