JavaScript Base64函數

來源:互聯網
上載者:User
function base64_encode (data) {  // http://kevin.vanzonneveld.net  // +   original by: Tyler Akins (http://rumkin.com)  // +   improved by: Bayron Guevara  // +   improved by: Thunder.m  // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)  // +   bugfixed by: Pellentesque Malesuada  // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)  // +   improved by: Rafa? Kukawski (http://kukawski.pl)  // *     example 1: base64_encode('Kevin van Zonneveld');  // *     returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='  // mozilla has this native  // - but breaks in 2.0.0.12!  //if (typeof this.window['btoa'] == 'function') {  //    return btoa(data);  //}  var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";  var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,    ac = 0,    enc = "",    tmp_arr = [];  if (!data) {    return data;  }  do { // pack three octets into four hexets    o1 = data.charCodeAt(i++);    o2 = data.charCodeAt(i++);    o3 = data.charCodeAt(i++);    bits = o1 << 16 | o2 << 8 | o3;    h1 = bits >> 18 & 0x3f;    h2 = bits >> 12 & 0x3f;    h3 = bits >> 6 & 0x3f;    h4 = bits & 0x3f;    // use hexets to index into b64, and append result to encoded string    tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);  } while (i < data.length);  enc = tmp_arr.join('');  var r = data.length % 3;  return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.