在通常的http協議的網站中直接提交數據可以通過信息抓取從而暴露提交者所提交的信息,特別是注冊時的密碼和登錄時的密碼容易被泄露。
那么怎么防止這種現象呢?
很多人會想到加密技術,對沒錯,本文所講的就是使用rsa非對稱加密技術進行數據提交,由客戶獲取后台所產生的公鑰對提交字段進行加密,用戶提交后再由后台所產生的私鑰進行解密。
這里以用戶登錄時對用戶密碼進行加密為列,下面直接上代碼:
jQuery.ajax({ type:"post", url:"loginset", success:function(rd){ if(rd!=null){ //加密模 var Modulus = rd.split(';')[0]; //公鑰指數 var public_exponent = rd.split(';')[1]; //通過模和公鑰參數獲取公鑰
var key = new RSAUtils.getKeyPair(private_exponent(按道理后台獲取), "", Modulus); //顛倒密碼的順序,要不然后解密后會發現密碼順序是反的 var reversedPwd = password.split("").reverse().join(""); //對密碼進行加密傳輸 var encrypedPwd = RSAUtils.encryptedString(key,reversedPwd); jQuery('#subPwd').val(encrypedPwd); jQuery('#loginPwd').val(""); jQuery('#login').submit(); } } }) })