PHP如何解密AES

Lime
  • 14

我的JavaScript加密代码(使用了crypto-js):

            var password_form="QAQ";
            console.log(password_form);
            var password = CryptoJS.AES.encrypt(password_form,'Lime Website').toString();
            console.log(password);

在password传送到后端后,我应该怎么把他通过PHP解密?

回复
阅读 652
2 个回答

我就补充下楼上的答案再说几点吧
首先aes是一种对称加密方式 而且加密的方式有很多种
图片描述

当然还有更多 我只是没有截全 当然 最常用的就是aes-128-cbc
_
我不懂js但是从你上述的代码来看 你加密的key为"Lime Website"这个只有12个字节 也就12*8=96个字节 然后从你的js当中我也没看出到底用的是那种加密方法 但是应该是aes-128-cbc 因为你js的解密过程也没iv tag这些 然后字节也没超过128字节

最后我再附上我稍微完整一点的一段代码

$avaMethods = openssl_get_cipher_methods();
//选择加密的方法
$method = 'aes-128-ecb';
if (!in_array($method, $avaMethods)) {
    exit('错误的加密方法' . PHP_EOL);
}

$key = "这里输入加密用的密码";
$data = "加密后的内容";

$decData = openssl_decrypt($data, $method, $key, OPENSSL_RAW_DATA);
echo "解密:" . $decData . PHP_EOL;

php解密代码 使用aes-128-cbc的算法

$input = _POST('password');
$password = openssl_decrypt(base64_decode($input), 'AES-128-CBC', 'Lime website', OPENSSL_RAW_DATA,'');
echo $password;
你知道吗?

宣传栏