国产探花免费观看_亚洲丰满少妇自慰呻吟_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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 敦煌市| 新蔡县| 富蕴县| 毕节市| 瑞安市| 牟定县| 融水| 宝清县| 满洲里市| 武穴市| 平顺县| 田阳县| 泸西县| 阿拉善左旗| 曲阳县| 威远县| 利津县| 德令哈市| 西安市| 长垣县| 汤阴县| 青田县| 绍兴县| 保靖县| 邹城市| 金塔县| 贵南县| 瑞丽市| 万盛区| 文登市| 萍乡市| 佛学| 错那县| 大理市| 开鲁县| 噶尔县| 八宿县| 皋兰县| 行唐县| 明星| 北宁市|