encrypt.js
2.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
var __AESEcrypt__ = (function(){
return (function(){
var AES_01 = null;
var AES_02 = null;
var RSA_AES_01 = null;
var RSA_AES_02 = null;
var RSA_PUB = null;
var RSA_CODE = null;
return {
aes_data_encrypt:function(value){
if(!value)return value;
var aes_check_data = function(value,aes_01, aes_02){
if(!aes_01 || !aes_02){
alert("发生错误");
return false;
}
return true;
}
var checkResult = aes_check_data(value,AES_01,AES_02);
if(checkResult){
var key = CryptoJS.enc.Utf8.parse(AES_01);
var iv = CryptoJS.enc.Utf8.parse(AES_02);
var encryptedData = CryptoJS.AES.encrypt(value, key, {iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding}).toString();
return encryptedData;
}
return value;
},
get_rsa_aes_01: function(){
return RSA_AES_01;
},
get_rsa_aes_02: function(){
return RSA_AES_02;
},
aes_data_decrypt:function(value){
if(!value)return value;
var aes_check_data = function(value,aes_01, aes_02){
if(!aes_01 || !aes_02){
alert("发生错误");
return false;
}
return true;
}
var checkResult = aes_check_data(value,AES_01,AES_02);
if(checkResult){
var key = CryptoJS.enc.Utf8.parse(AES_01);
var iv = CryptoJS.enc.Utf8.parse(AES_02);
var decryptedData = CryptoJS.AES.decrypt(value, key, {iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding}).toString();
var prePro = function(data){
if (data.length % 2) return '';
var tmp='';
for(i=0;i<data.length;i+=2)
{
tmp += '%' + data.charAt(i) + data.charAt(i+1);
}
return decodeURI(tmp);
}
var decryptedStr = prePro(decryptedData.toString(CryptoJS.enc.Utf8));
return decryptedStr;
}
return value;
},
aes_encrypt:function(callback){
__RSAEcrypt__.initAESCode(callback);
},
initAESCode:function(callback){
if(AES_01 && AES_02){
if(callback){
callback();
}
}else{
jQuery.ajax({
url:"/rsa/weaver.rsa.GetRsaInfo?ts="+new Date().getTime(),
type:"post",
dataType:"json",
success:function(data){
RSA_PUB = data.rsa_pub;
//初始化的时候生成好密钥和向量
var uuid = function() {
function S4() {
return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
}
return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4()).substr(0,16);
}
AES_01 = uuid();
AES_02 = uuid();
//对密钥进行RSA加密处理
var encrypt = new JSEncrypt();
encrypt.setPublicKey(RSA_PUB);
RSA_AES_01= encrypt.encrypt(AES_01);
RSA_AES_02= encrypt.encrypt(AES_02);
if(callback){
callback();
}
}
});
}
}
}
})();
})();
jQuery(document).ready(function(){
__AESEcrypt__.initAESCode();
});