js aes加密后端php,关于使用 crypto-js AES加密 PHP后端解密的问题?求梳理求讲解

看了一下关于加密登陆的相关内容,确实没有证书不是https方式的登陆很不安全,POST的值能全部看到。

找了一些资料关于js加密php解密的资料,但是还是不是非常清楚,

大概思路是通过前台向后台发出请求获得一个密钥,然后前台进行加密,传到后端解密。

(没有证书只是简单的js加密)

问题

1. 在前台向后台请求密钥的时候是不是就有安全隐患,不管是存在cookie还是session

2. 确实很多概念还不清楚就来提问了,但是希望大神能帮忙梳理一下。

又在网上搜索了到这两段代码。

------javascript

var key = CryptoJS.enc.Utf8.parse(key_hash);

var iv = CryptoJS.enc.Utf8.parse('1234567812345678');

var encrypted = CryptoJS.AES.encrypt("Message", key, { iv: iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding});

document.write("encode:"+encrypted);

php------

$text = "Message";

$key = md5($text); //key的长度必须16,32位,这里直接MD5一个长度为32位的key

$iv='1234567812345678';

$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, MCRYPT_MODE_CBC, $iv);

$decode = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $crypttext, MCRYPT_MODE_CBC, $iv);

echo base64_encode($crypttext);

echo "
";

echo $decode;

echo "
";

如果是对应的,js的encrypted 传到php 值是和$crypttext 相等,但是mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $crypttext, MCRYPT_MODE_CBC, $iv); 中的$key 是md5的$text。搞不清白了。

求简单细致解说。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值