在web開發中有時需要將用戶的一些信息在客戶端加密后進行提交,然后在web后端進行驗證,可以提高頁面傳輸過程中的安全性。本例實現一個簡單的加密登錄demo,例子僅僅為了演示使用,實際使用時可以根據實際要求進行修改。
1、主要實現點
1、form中加入一個隱藏的input用於提交加密后的密文;
2、在表單的submit方法中將輸入的明文密碼加密,並設置到隱藏的input中。加密使用md5.js進行實現,該文件可自行百度;
3、在表單的submit方法中使用ajaxSubmit提交form;
本例用於演示,提交時會同時提交明文和密文密碼,實際使用時可以將明文輸入框改為不提交或者放到form表單之外即可。
2、代碼
用戶登錄$(document).ready(function() {
var url="manage/updater.shtml";
var baseRef = window.location.href;
var aa = baseRef.indexOf("=");
if(0 < aa) {
url=baseRef.substring(aa+1);
}
//ajax submit.
$("#formLogin").submit(function() {
var tmp = hex_md5($("#password").val());
$("#txt_passwd").val(tmp);
$(this).ajaxSubmit({
success: function(data) { // data 保存提交后返回的數據,一般為 json 數據
var obj = eval("("+data+")");
if(obj.result=="ok") {
window.location.assign(url);
}
else {
$.noty.consumeAlert({layout: 'top', type: 'error', dismissQueue: true,timeout:2000});
alert("登錄失敗,請重試!");
}
}
});
return false;
});
});
用戶登錄
3、運行效果
后端返回認證的json字符串,如果客戶端認證通過將重定向到一個新頁面,該頁面通過地址欄參數傳入,沒有時使用預定的默認值。失敗時彈出一個noty的提示框(如上圖)。