关于使用 crypto-js AES加密 PHP后端解密的问题?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

关于使用 crypto-js AES加密 PHP后端解密的问题?

2016-06-16 15:39:22 3317 1

了一下关于加密登陆的相关内容,确实没有证书不是https方式的登陆很不安全,POST的值能全部看到。
找了一些资料关于js加密php解密的资料,但是还是不是非常清楚,
大概思路是通过前台向后台发出请求获得一个密钥,然后前台进行加密,传到后端解密。
(没有证书只是简单的js加密)
问题

  1. 在前台向后台请求密钥的时候是不是就有安全隐患,不管是存在cookie还是session
  2. 确实很多概念还不清楚就来提问了,但是希望大神能帮忙梳理一下。
    http://skysbird.duichenmei.com/?p=306 看到了一下这个代码,思路清晰了一些。

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

<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/aes.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/md5.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/components/pad-zeropadding.js"></script>

<script> var key_hash = CryptoJS.MD5("Message");
    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);
</script>

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 "<br/>";
echo $decode;
echo "<br/>";

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

取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 19:41:04

    1.对。密钥通过明文传播就会有加密隐患。另外有更可怕的例子,已证实有中国运营商直接把用于加密的JS函数给改了。
    2.在JS中和PHP中,这里都使用了同一个密钥生成规则:自定义一个String,然后用其MD5值做AES密钥。这样一来会避免密钥长度补齐之类的问题。

    0 0
相关问答

170

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 233954浏览量 回答数 170

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 160040浏览量 回答数 145

119

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 302713浏览量 回答数 119

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 148998浏览量 回答数 22

34

回答

Win Server 2003-2016 加密勒索事件必打补丁合集

妙正灰 2017-05-15 10:44:38 284014浏览量 回答数 34

39

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 263687浏览量 回答数 39

295

回答

Linux Bash严重漏洞修复紧急通知(已全部给出最终修复方案)

qilu 2014-09-25 13:26:50 438499浏览量 回答数 295

1

回答

foxmail 关联企业邮箱提示邮箱地址或者密码错误

2017-12-30 21:50:39 152150浏览量 回答数 1

251

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 310395浏览量 回答数 251

13

回答

游戏云精彩帖汇总

nono20011908 2014-08-22 11:00:12 205288浏览量 回答数 13
+关注
落地花开啦
喜欢技术,喜欢努力的人
0
文章
7824
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载