国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript實現的encode64加密算法實例分析

2019-11-20 12:39:41
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript實現的encode64加密算法。分享給大家供大家參考。具體如下:

這段JavaScript代碼可實現encode64加密算法,速度還是相當不錯的。

//encode64編解碼(function() { var codeChar = "PaAwO65goUf7IK2vi9-xq8cFTEXLCDY1Hd3tV0ryzjbpN_BlnSs4mGRkQWMZJeuh"; window.encode64 = function(str) {  var s = "";  var a = strToBytes(str);  //取得字串的字節數組, 數組長度是字串長度的2倍.  var res = a.length % 3;  //3個字節一組進行處理, 余下特殊處理  var i = 2, v;  for (; i < a.length; i += 3) {  //每3個字節用4個字符表示,   //相當于3個字符(實際上是6個字節)用8個字符編碼(實際為16個字節)  //看起來容量膨脹了很多, 但是在啟用壓縮的情況下, 這些又被抵消掉了   v = a[i - 2] + (a[i - 1] << 8) + (a[i] << 16);   s += codeChar.charAt(v & 0x3f);   s += codeChar.charAt((v >> 6) & 0x3f);   s += codeChar.charAt((v >> 12) & 0x3f);   s += codeChar.charAt((v >> 18));  }  if (res == 1) {//字節余一位時候, 補2個字符, 64*64>256   v = a[i - 2];   s += codeChar.charAt(v & 0x3f);   s += codeChar.charAt((v >> 6) & 0x3f);  } else if (res == 2) {  //字節余2位的時候, 補3個字節, 64*64*64>256*256, 所以是可行的   v = a[i - 2] + (a[i - 1] << 8);   s += codeChar.charAt(v & 0x3f);   s += codeChar.charAt((v >> 6) & 0x3f);   s += codeChar.charAt((v >> 12) & 0x3f);  }  return s; }; window.decode64 = function(codeStr) {  var dic = [];  for (var i = 0; i < codeChar.length; i++) {   dic[codeChar.charAt(i)] = i;  }  var code = [];  var res = codeStr.length % 4;  var i = 3, v;  for (; i < codeStr.length; i += 4) {   v = dic[codeStr.charAt(i - 3)];   v += dic[codeStr.charAt(i - 2)] << 6;   v += dic[codeStr.charAt(i - 1)] << 12;   v += dic[codeStr.charAt(i)] << 18;   code.push(v & 0xff, (v >> 8) & 0xff, (v >> 16) & 0xff);  }  if (res == 2) {  //正確的字節數肯定是余2或3, 沒有1的情況, 如果出現, 舍棄.   v = dic[codeStr.charAt(i - 3)];   v += dic[codeStr.charAt(i - 2)] << 6;   code.push(v & 0xff);  } else if (res == 3) {   v = dic[codeStr.charAt(i - 3)];   v += dic[codeStr.charAt(i - 2)] << 6;   v += dic[codeStr.charAt(i - 1)] << 12;   code.push(v & 0xff, (v >> 8) & 0xff);  }  return strFromBytes(code); };})();

希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤凰县| 辽源市| 嘉黎县| 德兴市| 玉龙| 龙海市| 南乐县| 扬州市| 九龙坡区| 来凤县| 基隆市| 呼和浩特市| 隆化县| 壶关县| 象山县| 离岛区| 治县。| 湟源县| 咸丰县| 米林县| 大邑县| 安国市| 安溪县| 谷城县| 雷波县| 祁连县| 康马县| 赤城县| 青川县| 安庆市| 满洲里市| 合肥市| 长岭县| 枣强县| 屏山县| 闽清县| 广汉市| 福泉市| 大埔县| 青田县| 苗栗县|