在HTTPS还没有普及的时候,前端采用HTTP协议,登录用户名和密码在不做任何控制的情况下是明文传输的,大量的网站都需要登录,大量的人使用同样的用户名和密码。
目的:防止登录密码名文传输(仅仅只是防止明文传输,加密效果取决于key,而key对于前台是透明的)
方式:前端页面用js加密前端登录密码,采用AES对称加密
一、前端JS加密库crypto-js
因为懒,所以直接引入整个加密库,可以根据所需要的加密算法分别引入,下载地址crypto-js
如果是分别引入,记得别忘记引入核心库core
二、前端页面代码
因为需要加密密码,所以把提交方式换成了ajax
AES加密的key为128bit,可以理解为16个字符。key由后端生成并送入前端。
xmlns:th="http://www.w3.org/1999/xhtml"
>
用户登录.bgColor {
background-color: rgba(243, 66, 111, 0.15)
}
.divBorder {
border: solid 1px rgba(12, 24, 255, 0.15);
padding: 10px;
margin-top: 10px;
border-radius: 10px;
text-align: center;
vertical-align: middle;
}
.h4font {
margin-top: 0px;
font-family: 微软雅黑;
font-weight: 500;
}
.center {
padding: 20% 0;
}
.verifyInput {
vertical-align: middle;
font-size: 14px;
font-weight: normal;
line-height: 1;
/*border:1px solid #999;*/
float: left;
width: 180px;
height: 30px;
}
.verifyImage {
vertical-align: middle;
float: right;
height: 30px;
}
用户登录
th:value="${userName}"/>
placeholder="请输入密码"/>
src="/getVerifyCode">
$(function () {
$('input[name="