利用非同步寫js元件給密碼框進行加密
阿新 • • 發佈:2018-12-17
一.背景
比如在使用者session快取清掉的情況下彈出一個框讓使用者當即輸入賬號密碼登陸,需要對密碼進行加密(以rsa加密為例,需要獲得祕鑰publicKey)
二.技術點
1.使用同步獲得祕鑰
2.為了元件化,寫個js元件
三.程式碼
1.同步寫法(略)
2.js元件
/** * 同步獲得公鑰,然後對輸入的id新增blur事件進行rsa加密 * @param id */ rsaEn:function(id){ var $id = $("#"+id); //防止多次觸發事件,用unbind $id.unbind("blur").bind("blur",function(){ var name = $id.attr("name"); var id_rsa = id+'_rsa'; if(name!=undefined) { //還沒生成加密元素 $id.removeAttr("name"); var rsahtm = "<input id='"+id+"_rsa"+"' type='hidden' name='"+name+"' value='' />"; $id.after(rsahtm); } var postUrl = .....;//非同步路徑 $.ajax({ type: "post", url: postUrl , data: "", dataType: "json", async:false success: function(data){ var publicKey = data.publicKey;//獲得祕鑰 var value = this.encrypt($id.val(),publicKey);//進行加密 $("#"+id_rsa).val(value);//賦值 } }); },