js encode64編碼和解碼程式碼例項
本章節分享一段程式碼例項,它使用javascript實現了encode64編碼和解碼功能。
可以說是一個不錯的功能,需要的朋友可以直接拿去使用。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼//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); }; })();
相關文章
- js實現的字串簡單編碼和解碼程式碼例項JS字串
- js自定義實現的簡單編碼和解碼程式碼例項JS
- 結合例項學習|字元編碼和解碼字元
- js將字串轉換為編碼序列程式碼例項JS字串
- js刮刮樂程式碼例項JS
- toJSON()程式碼例項JSON
- Base64編碼與解碼程式碼例項
- js使用XMLHttpRequest例項程式碼JSXMLHTTP
- js confirm()程式碼例項JS
- javascript base64加密和解密例項程式碼JavaScript加密解密
- js生成GUID程式碼例項JSGUI
- js阻止事件冒泡例項程式碼JS事件
- js with語句使用程式碼例項JS
- js 物件反射使用程式碼例項JS物件反射
- js重力球效果程式碼例項JS
- js煙花效果程式碼例項JS
- js隔行變色程式碼例項JS
- js陣列求和程式碼例項JS陣列
- js鐘錶效果程式碼例項JS
- js秒錶效果程式碼例項JS
- js table表格排序程式碼例項JS排序
- JSON.parse()程式碼例項JSON
- js擷取字串程式碼例項JS字串
- js簡單富文字編輯器效果程式碼例項JS
- js選項卡簡單程式碼例項JS
- 原生js tab選項卡程式碼例項JS
- js監聽鍵盤事件程式碼例項例項JS事件
- nodeJS程式碼實現計算交社保程式碼例項NodeJS
- js prototype屬性使用程式碼例項JS
- js map集合簡單程式碼例項JS
- js網址跳轉例項程式碼JS
- js如何禁用tab鍵例項程式碼JS
- js ajax惰性載入程式碼例項JS
- js返回上一頁程式碼例項JS
- js建立XMLHttpRequest物件的程式碼例項JSXMLHTTP物件
- js四捨五入程式碼例項JS
- $.getJSON()用法程式碼例項介紹JSON
- js冪函式程式碼例項分享JS函式