javascript 字符串加密的几种方法

时间:2024-03-05 17:49:49

8进制

 1 /*8进制加密*/
 2 function EnEight(){
 3     var monyer = new Array();var i,s;
 4     for(i=0;i<txt.value.length;i++)
 5         monyer+="\\"+txt.value.charCodeAt(i).toString(8); 
 6     txt.value=monyer;
 7 }
 8 /*8进制解密*/
 9 function DeEight(){
10     var monyer = new Array();var i;
11     var s=txt.value.split("\\");
12     for(i=1;i<s.length;i++)
13         monyer+=String.fromCharCode(parseInt(s[i],8));
14     txt.value=monyer;
15 }
View Code

10进制

 1 /*10进制加密*/
 2 function Encrypt(){
 3     var monyer = new Array();var i,s;
 4     for(i=0;i<txt.value.length;i++){
 5         s=txt.value.charCodeAt(i).toString(16); 
 6         if(Decimal1.checked) monyer+="&#"+txt.value.charCodeAt(i)+";";
 7         else if (Decimal2.checked) monyer+="&#"+new Array(7-String(s).length).join("0")+txt.value.charCodeAt(i);
 8         else monyer+=txt.value.charCodeAt(i)+",";
 9     }txt.value=monyer;
10 }
11 /*10进制解密*/
12 function Decrypt(){
13     var monyer = new Array();var i;
14     if(Decimal1.checked){
15         var s=txt.value.split(";");
16         for(i=0;i<s.length;i++){
17             s[i]=s[i].replace(\'&#\',\'\');
18             monyer+=String.fromCharCode(s[i]);
19         }
20     }else if(Decimal2.checked){
21         var s=txt.value.split("&");
22         for(i=1;i<s.length;i++){
23             s[i]=s[i].replace(\'#\',\'\');
24             monyer+=String.fromCharCode(s[i]);
25         }
26     }else{
27         var s=txt.value.split(",");
28         for(i=0;i<s.length;i++)
29             monyer+=String.fromCharCode(s[i]);
30     }txt.value=monyer;
31 }
View Code

16进制

 1 /*16进制加密*/
 2 function JavaEn(){
 3     var monyer = new Array();var i,s;
 4     for(i=0;i<txt.value.length;i++){
 5         s=txt.value.charCodeAt(i).toString(16); 
 6         if(hex1.checked) monyer+="\\u"+new Array(5-String(s).length).join("0")+s;
 7         else if(hex2.checked) monyer+="&#x"+new Array(5-String(s).length).join("0")+s+";";
 8         else if(hex3.checked) monyer+="\\x"+new Array(5-String(s).length).join("0")+s;
 9         else monyer+="\\"+new Array(5-String(s).length).join("0")+s;
10     }txt.value=monyer;
11 }
12 var p=document.documentElement.outerHTML.length;
13 /*16进制解密*/
14 function JavaDe(){
15     if(hex1.checked){
16         var monyer = new Array();var i;
17         var s=txt.value.split("\\");
18         for(i=1;i<s.length;i++){
19             s[i]=s[i].replace(\'u\',\'\');
20             monyer+=String.fromCharCode(parseInt(s[i],16));
21         }
22     }else if(hex2.checked){
23         var monyer = new Array();var i;
24         var s=txt.value.split(";");
25         for(i=0;i<s.length;i++){
26             s[i]=s[i].replace(\'&#x\',\'\');
27             monyer+=String.fromCharCode(parseInt(s[i],16));
28         }
29     }
30     else if(hex3.checked){
31         var monyer = new Array();var i;
32         var s=txt.value.split("\\");
33         for(i=1;i<s.length;i++){
34             s[i]=s[i].replace(\'x\',\'\');
35             monyer+=String.fromCharCode(parseInt(s[i],16));
36         }
37     }else{
38         var monyer = new Array();var i;
39         var s=txt.value.split("\\");
40         for(i=1;i<s.length;i++)
41             monyer+=String.fromCharCode(parseInt(s[i],16));
42     }txt.value=monyer;
43 }
44 /*任意进制加密*/
45 function EnChTo(h){
46     var monyer = new Array();var i,s;
47     for(i=0;i<txt.value.length;i++)
48         monyer+=txt.value.charCodeAt(i).toString(h)+" "; 
49     txt.value=monyer;
50 }
51 /*任意进制解密*/
52 function DeChTo(h){
53     var monyer = new Array();var i;
54     var s=txt.value.split(" ");
55     for(i=0;i<s.length;i++)
56         monyer+=String.fromCharCode(parseInt(s[i],h));
57     txt.value=monyer;
58 }
View Code

URI加密

 1   function HtmlEncode(i)
 2                 {
 3                 if (i == 1)
 4                     txt.value
 5                         = txt.value.replace(/&/g, \'&amp;\').replace(/\"/g, \'&quot;\').replace(/</g, \'&lt;\').replace(/>/g,
 6                                                                                                                   \'&gt;\');
 7 
 8                 if (i == 2)
 9                     txt.value
10                         = txt.value.replace(/&amp;/g, \'&\').replace(/&quot;/g, \'\"\').replace(/&lt;/g,
11                                                                                             \'<\').replace(/&gt;/g, \'>\')
12                 }
13 
14             var hex_chr = "0123456789abcdef";
15 
16             function rhex(num)
17                 {
18                 str = "";
19 
20                 for (j = 0; j <= 3; j++)
21                     str += hex_chr.charAt((num >> (j * 8 + 4)) & 0x0F) + hex_chr.charAt((num >> (j * 8)) & 0x0F);
22 
23                 return str
24                 }
View Code

base64

  1 var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  2             var base64DecodeChars = new Array(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3                                               -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  4                                               -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57,
  5                                               58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0,  1,  2,  3,  4,  5,  6,
  6                                               7,  8,  9,  10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
  7                                               25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
  8                                               37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1,
  9                                               -1, -1);
 10 
 11             function base64encode(str)
 12                 {
 13                 var out, i, len;
 14                 var c1, c2, c3;
 15                 len = str.length;
 16                 i = 0;
 17                 out = "";
 18 
 19                 while (i < len)
 20                     {
 21                     c1 = str.charCodeAt(i++) & 0xff;
 22 
 23                     if (i == len)
 24                         {
 25                         out += base64EncodeChars.charAt(c1 >> 2);
 26                         out += base64EncodeChars.charAt((c1 & 0x3) << 4);
 27                         out += "==";
 28                         break
 29                         }
 30 
 31                     c2 = str.charCodeAt(i++);
 32 
 33                     if (i == len)
 34                         {
 35                         out += base64EncodeChars.charAt(c1 >> 2);
 36                         out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
 37                         out += base64EncodeChars.charAt((c2 & 0xF) << 2);
 38                         out += "=";
 39                         break
 40                         }
 41 
 42                     c3 = str.charCodeAt(i++);
 43                     out += base64EncodeChars.charAt(c1 >> 2);
 44                     out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
 45                     out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));
 46                     out += base64EncodeChars.charAt(c3 & 0x3F)
 47                     }
 48 
 49                 return out
 50                 }
 51 
 52             function base64decode(str)
 53                 {
 54                 var c1, c2, c3, c4;
 55                 var i, len, out;
 56                 len = str.length;
 57                 i = 0;
 58                 out = "";
 59 
 60                 while (i < len)
 61                     {
 62                     do
 63                         {
 64                         c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff]
 65                         } while (i < len && c1 == -1);
 66 
 67                     if (c1 == -1)
 68                         break;
 69 
 70                     do
 71                         {
 72                         c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff]
 73                         } while (i < len && c2 == -1);
 74 
 75                     if (c2 == -1)
 76                         break;
 77 
 78                     out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
 79 
 80                     do
 81                         {
 82                         c3 = str.charCodeAt(i++) & 0xff;
 83 
 84                         if (c3 == 61)
 85                             return out;
 86 
 87                         c3 = base64DecodeChars[c3]
 88                         } while (i < len && c3 == -1);
 89 
 90                     if (c3 == -1)
 91                         break;
 92 
 93                     out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));
 94 
 95                     do
 96                         {
 97                         c4 = str.charCodeAt(i++) & 0xff;
 98 
 99                         if (c4 == 61)
100                             return out;
101 
102                         c4 = base64DecodeChars[c4]
103                         } while (i < len && c4 == -1);
104 
105                     if (c4 == -1)
106                         break;
107 
108                     out += String.fromCharCode(((c3 & 0x03) << 6) | c4)
109                     }
110 
111                 return out
112                 }
View Code

utf8<--utf16

 1 function utf16to8(str)
 2                 {
 3                 var out, i, len, c;
 4                 out = "";
 5                 len = str.length;
 6 
 7                 for (i = 0; i < len; i++)
 8                     {
 9                     c = str.charCodeAt(i);
10 
11                     if ((c >= 0x0001) && (c <= 0x007F))
12                         {
13                         out += str.charAt(i)
14                         }
15 
16                     else if (c > 0x07FF)
17                         {
18                         out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
19                         out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
20                         out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F))
21                         }
22 
23                     else
24                         {
25                         out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
26                         out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F))
27                         }
28                     }
29 
30                 return out
31                 }
View Code

utf8-->utf16

 1      function utf8to16(str)
 2                 {
 3                 var out, i, len, c;
 4                 var char2, char3;
 5                 out = "";
 6                 len = str.length;
 7                 i = 0;
 8 
 9                 while (i < len)
10                     {
11                     c = str.charCodeAt(i++);
12 
13                     switch (c >> 4)
14                         {
15                         case 0:
16                         case 1:
17                         case 2:
18                         case 3:
19                         case 4:
20                         case 5:
21                         case 6:
22                         case 7:
23                             out += str.charAt(i - 1);
24 
25                             break;
26 
27                         case 12:
28                         case 13:
29                             char2 = str.charCodeAt(i++);
30 
31                             out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
32                             break;
33 
34                         case 14:
35                             char2 = str.charCodeAt(i++);
36 
37                             char3 = str.charCodeAt(i++);
38                             out += String.fromCharCode(((c & 0x0F) << 12) | ((char2 & 0x3F) << 6)
39                                                            | ((char3 & 0x3F) << 0));
40                             break
41                         }
42                     }
43 
44                 return out
45                 }
View Code

md5

  1 function str2blks_MD5(str)
  2                 {
  3                 nblk = ((str.length + 8) >> 6) + 1;
  4                 blks = new Array(nblk * 16);
  5 
  6                 for (i = 0; i < nblk * 16; i++)
  7                     blks[i] = 0;
  8 
  9                 for (i = 0; i < str.length; i++)
 10                     blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8);
 11 
 12                 blks[i >> 2] |= 0x80 << ((i % 4) * 8);
 13                 blks[nblk * 16 - 2] = str.length * 8;
 14                 return blks
 15                 }
 16 
 17             function add(x, y)
 18                 {
 19                 var lsw = (x & 0xFFFF) + (y & 0xFFFF);
 20                 var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
 21                 return (msw << 16) | (lsw & 0xFFFF)
 22                 }
 23 
 24             function rol(num, cnt)
 25                 {
 26                 return (num << cnt) | (num >>> (32 - cnt))
 27                 }
 28 
 29             function cmn(q, a, b, x, s, t)
 30                 {
 31                 return add(rol(add(add(a, q), add(x, t)), s), b)
 32                 }
 33 
 34             function ff(a, b, c, d, x, s, t)
 35                 {
 36                 return cmn((b & c) | ((~b) & d), a, b, x, s, t)
 37                 }
 38 
 39             function gg(a, b, c, d, x, s, t)
 40                 {
 41                 return cmn((b & d) | (c & (~d)), a, b, x, s, t)
 42                 }
 43 
 44             function hh(a, b, c, d, x, s, t)
 45                 {
 46                 return cmn(b ^ c ^ d, a, b, x, s, t)
 47                 }
 48 
 49             function ii(a, b, c, d, x, s, t)
 50                 {
 51                 return cmn(c ^ (b | (~d)), a, b, x, s, t)
 52                 }
 53 
 54             function calcMD5(str)
 55                 {
 56                 x = str2blks_MD5(str);
 57                 a = 1732584193;
 58                 b = -271733879;
 59                 c = -1732584194;
 60                 d = 271733878;
 61 
 62                 for (i = 0; i < x.length; i += 16)
 63                     {
 64                     olda = a;
 65                     oldb = b;
 66                     oldc = c;
 67                     oldd = d;
 68                     a = ff(a, b, c, d, x[i + 0], 7, -680876936);
 69                     d = ff(d, a, b, c, x[i + 1], 12, -389564586);
 70                     c = ff(c, d, a, b, x[i + 2], 17, 606105819);
 71                     b = ff(b, c, d, a, x[i + 3], 22, -1044525330);
 72                     a = ff(a, b, c, d, x[i + 4], 7, -176418897);
 73                     d = ff(d, a, b, c, x[i + 5], 12, 1200080426);
 74                     c = ff(c, d, a, b, x[i + 6], 17, -1473231341);
 75                     b = ff(b, c, d, a, x[i + 7], 22, -45705983);
 76                     a = ff(a, b, c, d, x[i + 8], 7, 1770035416);
 77                     d = ff(d, a, b, c, x[i + 9], 12, -1958414417);
 78                     c = ff(c, d, a, b, x[i + 10], 17, -42063);
 79                     b = ff(b, c, d, a, x[i + 11], 22, -1990404162);
 80                     a = ff(a, b, c, d, x[i + 12], 7, 1804603682);
 81                     d = ff(d, a, b, c, x[i + 13], 12, -40341101);
 82                     c = ff(c, d, a, b, x[i + 14], 17, -1502002290);
 83                     b = ff(b, c, d, a, x[i + 15], 22, 1236535329);
 84                     a = gg(a, b, c, d, x[i + 1], 5, -165796510);
 85                     d = gg(d, a, b, c, x[i + 6], 9, -1069501632);
 86                     c = gg(c, d, a, b, x[i + 11], 14, 643717713);
 87                     b = gg(b, c, d, a, x[i + 0], 20, -373897302);
 88                     a = gg(a, b, c, d, x[i + 5], 5, -701558691);
 89                     d = gg(d, a, b, c, x[i + 10], 9, 38016083);
 90                     c = gg(c, d, a, b, x[i + 15], 14, -660478335);
 91                     b = gg(b, c, d, a, x[i + 4], 20, -405537848);
 92                     a = gg(a, b, c, d, x[i + 9], 5, 568446438);
 93                     d = gg(d, a, b, c, x[i + 14], 9, -1019803690);
 94                     c = gg(c, d, a, b, x[i + 3], 14, -187363961);
 95                     b = gg(b, c, d, a, x[i + 8], 20, 1163531501);
 96                     a = gg(a, b, c, d, x[i + 13], 5, -1444681467);
 97                     d = gg(d, a, b, c, x[i + 2], 9, -51403784);
 98                     c = gg(c, d, a, b, x[i + 7], 14, 1735328473);
 99                     b = gg(b, c, d, a, x[i + 12], 20, -1926607734);
100                     a = hh(a, b, c, d, x[i + 5], 4, -378558);
101                     d = hh(d, a, b, c, x[i + 8], 11, -2022574463);
102                     c = hh(c, d, a, b, x[i + 11], 16, 1839030562);
103                     b = hh(b, c, d, a, x[i + 14], 23, -35309556);
104                     a = hh(a, b, c, d, x[i + 1], 4, -1530992060);
105                     d = hh(d, a, b, c, x[i + 4], 11, 1272893353);
106                     c = hh(c, d, a, b, x[i + 7], 16, -155497632);
107                     b = hh(b, c, d, a, x[i + 10], 23, -1094730640);
108                     a = hh(a, b, c, d, x[i + 13], 4, 681279174);
109                     d = hh(d, a, b, c, x[i + 0], 11, -358537222);
110                     c = hh(c, d, a, b, x[i + 3], 16, -722521979);
111                     b = hh(b, c, d, a, x[i + 6], 23, 76029189);
112                     a = hh(a, b, c, d, x[i + 9], 4, -640364487);
113                     d = hh(d, a, b, c, x[i + 12], 11, -421815835);
114 
115 
116                     c = hh(c, d, a, b, x[i + 15], 16, 530742520);
117                     b = hh(b, c, d, a, x[i + 2], 23, -995338651);
118                     a = ii(a, b, c, d, x[i + 0], 6, -198630844);
119                     d = ii(d, a, b, c, x[i + 7], 10, 1126891415);
120                     c = ii(c, d, a, b, x[i + 14], 15, -1416354905);
121                     b = ii(b, c, d, a, x[i + 5], 21, -57434055);
122                     a = ii(a, b, c, d, x[i + 12], 6, 1700485571);
123                     d = ii(d, a, b, c, x[i + 3], 10, -1894986606);
124                     c = ii(c, d, a, b, x[i + 10], 15, -1051523);
125                     b = ii(b, c, d, a, x[i + 1], 21, -2054922799);
126                     a = ii(a, b, c, d, x[i + 8], 6, 1873313359);
127                     d = ii(d, a, b, c, x[i + 15], 10, -30611744);
128                     c = ii(c, d, a, b, x[i + 6], 15, -1560198380);
129                     b = ii(b, c, d, a, x[i + 13], 21, 1309151649);
130                     a = ii(a, b, c, d, x[i + 4], 6, -145523070);
131                     d = ii(d, a, b, c, x[i + 11], 10, -1120210379);
132                     c = ii(c, d, a, b, x[i + 2], 15, 718787259);
133                     b = ii(b, c, d, a, x[i + 9], 21, -343485551);
134                     a = add(a, olda);
135                     b = add(b, oldb);
136                     c = add(c, oldc);
137                     d = add(d, oldd)
138                     }
139 
140                 return rhex(a) + rhex(b) + rhex(c) + rhex(d)
141                 }
View Code