密码存储的方式:
密码该如何存储呢?按照安全性由低到高,有这样几种选择:
1.密码名文直接存储在系统中
2.密码经过对称加密后再存储
3.密码经过非对称加密后再存储
步骤:
1.用户端:用户提交用户名和密码
2.浏览器端:JS【MD5加密】
3.服务端:提交加密后的密码,二次加密 登录成功
代码:
(1)没有name的表单不会提交,这样避免密码由用户输入的密码,变成32位"*", 给客户看到
<form action="" method="post" class="form-inline" id="from-test" onsubmit="return checkInput()"> <input type="text" id="username" name="username"> 姓名 <br> <input type="password" id="password"> 密码 <br> <input type="hidden" id="password_md5" name="password"> <button type="submit">Submit</button> </form>
function checkInput() { var password_input = document.getElementById('password'); var password_md5 = document.getElementById('password_md5'); // set password password_md5.value = md5(password_input.value); return true; }
2,使用ajax异步,对表单进行验证
- $('#btn a').click(function () {
- if (!$('#loginName').validatebox('isValid')) {
- $('#loginName').focus();
- } else if (!$('#password').validatebox('isValid')) {
- $('#password').focus();
- } else {
- //md5加密传输
- var salt="{*nbsjt*asar#cdxd#}";
- var pwd=$('#password').val();
- var md5Pwd=$.md5(pwd+salt);
- $.ajax({
- url:'login.manager',
- type:'post',
- data:{
- loginName:$('#loginName').val(),
- password:md5Pwd,
- },
- beforeSend:function(){
- $.messager.progress({
- text:'正在登录中......',
- });
- },
- success:function(data,response,status){
- $.messager.progress('close');
- if(data=="success"){
- location.href = 'main.manager';//进入后台首页
- }else{
- $.messager.alert('登录失败!', '用户名或密码错误!', 'warning', function () {
- $('#password').select();
- });
- }
- }
- });
- }
- });