js部分:
var myAes={
Encrypt:function(word, keyStr){//加密
var srcs = CryptoJS.enc.Utf8.parse(word);
var key = CryptoJS.enc.Utf8.parse(keyStr);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
return encrypted.toString();
},
Decrypt:function(word, keyStr){//解密
//var srcs = CryptoJS.enc.Utf8.parse(word);
var key = CryptoJS.enc.Utf8.parse(keyStr);
var decrypt = CryptoJS.AES.decrypt(word, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
return decrypt.toString(CryptoJS.enc.Utf8);
},
getAesKey:function(len) {
len = len || 32;
var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
var maxPos = $chars.length;
var keyStr = '';
for(var i = 0; i < len; i++) {
keyStr += $chars.charAt(Math.floor(Math.random() * maxPos));
}
return keyStr;
},
getNewSecret:function(sstr){
var newEncrypt = new JSEncrypt();
newEncrypt.setPublicKey(publicKeySer);
newSecret = newEncrypt.encrypt(sstr);
return newSecret;
},
returnSign:function(nowTime){
var sign='',data=[],system='systempc', mac='mac';
data.push(system);
data.push(mac);
data=data.sort() //sort字母排序
for(var i=0;i<data.length;i++){
if(i==(data.length-1)){sign += data[i];}else{sign += data[i]+'_';};
}
sign+=salt;
sign+=publicKeyUser;
sign+=nowTime;
return sign;
}
}
function newAjax(){
var nowTime =new Date().getTime();
var newAesKey=myAes.getAesKey(16);
var newSecret=myAes.getNewSecret(newAesKey);
var newSign=myAes.Encrypt(myAes.returnSign(nowTime),newAesKey);
var token=GLOBAL_G.readCookie('token');
var ajaxData = {
url:arguments.length && arguments[0].url ? arguments[0].url : "",
data:arguments.length && arguments[0].data ? arguments[0].data : null,
beforeSend:arguments.length && arguments[0].beforeSend ? arguments[0].beforeSend : function(){},
success:arguments.length && arguments[0].success ? arguments[0].success : function(msg){},
error:arguments.length && arguments[0].error ? arguments[0].error : function(){}
}
var flag=ajaxData.beforeSend();
$.ajax({ //其他
url: ajaxData.url,
method: "POST",
data: ajaxData.data,
dataType: "json",
headers: {
"sign":newSign,
"system":'pc',
"mac":'',
"secret":newSecret,
"time":nowTime
},
beforeSend:ajaxData.beforeSend,
success:ajaxData.success,
error:ajaxData.error
})
}