关于JavaScript中md5加密使用方法重点
不说别的,先上代码,代码其实不难,更多需要理解
//这边是前端代码
<form class="loginForm" action="${pageContext.request.contextPath }/login.do" name="actionForm" id="actionForm" method="post" onclick="return check()">
<label for="userCode">用户名:</label>
<input type="text" class="input-text" id="userCode" name="userCode" placeholder="请输入用户名" required/>
<div class="inputbox">
<label for="userPassword">密码:</label>
<input type="password" id="pwd" placeholder="请输入密码" required />
<input type="hidden" id="userPassword" name="userPassword" />
</div>
<input type="submit" value="登录"/>
</form>
因为我加密的是密码,所以在密码方面做了处理,下面是原来不加密的代码
<div class="inputbox">
<label for="userPassword">密码:</label>
<input type="password" id="pwd" name="userPassword" placeholder="请输入密码" required />
</div>
重点是加了额外的hidden一行,因为这样用户输入后完全没有感觉密码已经加密了,而原来的如果在密码一行直接加密会导致输入后密码突然边长,能够感觉出来。
对了,md5的js记得在前面插入
<script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js"></script>
最后是在底部插入的js
<script type="text/javascript">
function check(){
var userPassword=document.getElementById('userPassword');
var pwd=document.getElementById('pwd');
userPassword.value = md5(pwd.value);
return true;
}
</script>
这样的话基本上就没有问题了
然后在网页里输入密码就可以加密了,不过数据库中也只会显示加密后的密码,例如我在网页中输入了密码 111 ,在加密后会输出32位密码 698d51a19d8a121ce581499d7b701668
这需要把这串代码放入数据库,你下次输入111才能登陆,这串代码只要不是动态密码都不会变的,关于这串代码怎么来的?
OK,你在输入密码的时候右键检查,然后打开network,点进你输入密码的那个请求,输入你的密码,拉到最底下就有了
最后是有个很关键的点,那就是登陆的时候一定要联网!!!
不然无法生效,昨天我郁闷了半天,总是时灵时不灵的