一.背景
比如在用户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);//赋值 } }); },