·您当前的位置:首页 > 技术教程 > JavaScript >

[js]js代码做的很简单的加密与解密代码范例

时间:2016-09-07 16:47酷播
[js]js代码做的加密与解密代码范例

[js]js代码做的很简单的加密与解密代码范例,酷播做的范例如下:

  1. <!DOCTYPE html> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5.     <title>JS实现加密解密</title> 
  6.     <script type="text/javascript"> 
  7.         var base64EncodeChars ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
  8.         var base64DecodeChars = new Array( 
  9.         -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
  10.         -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
  11.         -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 
  12.         52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, 
  13.         -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 
  14.         15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, 
  15.         -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 
  16.         41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1); 
  17.         function base64encode(str) { 
  18.             var out, i, len; 
  19.             var c1, c2, c3; 
  20.             len = str.length; 
  21.             i = 0
  22.             out = ""
  23.             while (i < len) { 
  24.                 c1 = str.charCodeAt(i++) & 0xff; 
  25.                 if (i == len) { 
  26.                     out += base64EncodeChars.charAt(c1 >> 2); 
  27.                     out += base64EncodeChars.charAt((c1 & 0x3) << 4); 
  28.                     out += "=="; 
  29.                     break; 
  30.                 } 
  31.                 c2 = str.charCodeAt(i++); 
  32.                 if (i == len) { 
  33.                     out += base64EncodeChars.charAt(c1 >> 2); 
  34.                     out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)); 
  35.                     out += base64EncodeChars.charAt((c2 & 0xF) << 2); 
  36.                     out += "="; 
  37.                     break; 
  38.                 } 
  39.                 c3 = str.charCodeAt(i++); 
  40.                 out += base64EncodeChars.charAt(c1 >> 2); 
  41.                 out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)); 
  42.                 out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6)); 
  43.                 out += base64EncodeChars.charAt(c3 & 0x3F); 
  44.             } 
  45.             return out; 
  46.         } 
  47.         function base64decode(str) { 
  48.             var c1, c2, c3, c4; 
  49.             var i, len, out; 
  50.             len = str.length; 
  51.             i = 0
  52.             out = ""
  53.             while (i < len) { 
  54.                 do { 
  55.                     c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff]; 
  56.                 } while (i < len && c1 == -1); 
  57.                 if (c1 == -1) 
  58.                     break; 
  59.                 do { 
  60.                     c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff]; 
  61.                 } while (i < len && c2 == -1); 
  62.                 if (c2 == -1) 
  63.                     break; 
  64.                 out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4)); 
  65.                 do { 
  66.                     c3 = str.charCodeAt(i++) & 0xff; 
  67.                     if (c3 == 61) 
  68.                         return out; 
  69.                     c3 = base64DecodeChars[c3]; 
  70.                 } while (i < len && c3 == -1); 
  71.                 if (c3 == -1) 
  72.                     break; 
  73.                 out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2)); 
  74.                 do { 
  75.                     c4 = str.charCodeAt(i++) & 0xff; 
  76.                     if (c4 == 61) 
  77.                         return out; 
  78.                     c4 = base64DecodeChars[c4]; 
  79.                 } while (i < len && c4 == -1); 
  80.                 if (c4 == -1) 
  81.                     break; 
  82.                 out += String.fromCharCode(((c3 & 0x03) << 6) | c4); 
  83.             } 
  84.             return out; 
  85.         } 
  86.         function utf16to8(str) { 
  87.             var out, i, len, c; 
  88.             out = ""
  89.             len = str.length; 
  90.             for (i = 0; i < len; i++) { 
  91.                 c = str.charCodeAt(i); 
  92.                 if ((c >= 0x0001) && (c <= 0x007F)) { 
  93.                     out += str.charAt(i); 
  94.                 } else if (c > 0x07FF) { 
  95.                     out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F)); 
  96.                     out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F)); 
  97.                     out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F)); 
  98.                 } else { 
  99.                     out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F)); 
  100.                     out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F)); 
  101.                 } 
  102.             } 
  103.             return out; 
  104.         } 
  105.         function utf8to16(str) { 
  106.             var out, i, len, c; 
  107.             var char2, char3; 
  108.             out = ""
  109.             len = str.length; 
  110.             i = 0
  111.             while (i < len) { 
  112.                 c = str.charCodeAt(i++); 
  113.                 switch (c >> 4) { 
  114.                     case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: 
  115.                         // 0xxxxxxx 
  116.                         out += str.charAt(i - 1); 
  117.                         break; 
  118.                     case 12: case 13: 
  119.                         // 110x xxxx  10xx xxxx 
  120.                         char2 = str.charCodeAt(i++); 
  121.                         out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F)); 
  122.                         break; 
  123.                     case 14: 
  124.                         // 1110 xxxx 10xx xxxx 10xx xxxx 
  125.                         char2 = str.charCodeAt(i++); 
  126.                         char3 = str.charCodeAt(i++); 
  127.                         out += String.fromCharCode(((c & 0x0F) << 12) | 
  128.                         ((char2 & 0x3F) << 6) | 
  129.                         ((char3 & 0x3F) << 0)); 
  130.                         break; 
  131.                 } 
  132.             } 
  133.             return out; 
  134.         } 
  135.         function doit() { 
  136.             var f = document.f 
  137.             f.output.value = base64encode(utf16to8(f.source.value)) 
  138.             //f.decode.value = utf8to16(base64decode(f.output.value)) 
  139.         } 
  140.         function toDoit() { 
  141.             var f = document.f 
  142.             //f.output.value = base64encode(utf16to8(f.source.value)) 
  143.             f.decode.value = utf8to16(base64decode(f.output.value)) 
  144.         } 
  145.     </script> 
  146. </head> 
  147. <body> 
  148.     <h1>Base64</h1> 
  149.     <form name="f"> 
  150.         原码<br/> 
  151.         <textarea name="source" rows="4" cols="60" wrap="soft"></textarea><br/> 
  152.         <br/> 
  153.         Base64 encode<br> 
  154.         <textarea name="output" rows="4" cols="60" wrap="soft"></textarea><br/> 
  155.         <br/> 
  156.         Base64 decode<br> 
  157.         <textarea name="decode" rows="4" cols="60" wrap="soft"></textarea><br/> 
  158.         <br/> 
  159.         <input type="button" value="加密" onclick="doit()" id="Button1"> 
  160.         <input type="button" value="解密" onclick="toDoit()" id="Button2"> 
  161.     </form> 
  162. </body> 
  163. </html>  

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器