久成视频在线观看免费-先锋影音资源影音中在线不卡-久久精品—区二区三区美女-久久国产免费一区二区三区

<track id="icesm"></track>

    1. 龍巖易富通網(wǎng)絡(luò)科技有限公司

      龍巖小程序開(kāi)發(fā),龍巖分銷(xiāo)系統(tǒng)

      base64的js實(shí)現(xiàn)

      2015.11.19 | 2462閱讀 | 0條評(píng)論 | javascript

      /**

      *

      *  Base64 encode / decode

      *

      *  @author haitao.tu

      *  @date   2010-04-26

      *  @email  tuhaitao@foxmail.com

      *

      */

       

      function Base64() {

       

            // private property

      _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

       

            // public method for encoding

            this.encode = function (input) {

                  var output = "";

                  var chr1, chr2, chr3, enc1, enc2, enc3, enc4;

                  var i = 0;

                  input = _utf8_encode(input);

                  while (i < input.length) {

                        chr1 = input.charCodeAt(i++);

                        chr2 = input.charCodeAt(i++);

                        chr3 = input.charCodeAt(i++);

                        enc1 = chr1 >> 2;

                        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);

                        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);

                        enc4 = chr3 & 63;

                        if (isNaN(chr2)) {

                              enc3 = enc4 = 64;

                        } else if (isNaN(chr3)) {

                              enc4 = 64;

                        }

                        output = output +

                        _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +

                        _keyStr.charAt(enc3) + _keyStr.charAt(enc4);

                  }

                  return output;

            }

       

            // public method for decoding

            this.decode = function (input) {

                  var output = "";

                  var chr1, chr2, chr3;

                  var enc1, enc2, enc3, enc4;

                  var i = 0;

                  input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

                  while (i < input.length) {

                        enc1 = _keyStr.indexOf(input.charAt(i++));

                        enc2 = _keyStr.indexOf(input.charAt(i++));

                        enc3 = _keyStr.indexOf(input.charAt(i++));

                        enc4 = _keyStr.indexOf(input.charAt(i++));

                        chr1 = (enc1 << 2) | (enc2 >> 4);

                        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);

                        chr3 = ((enc3 & 3) << 6) | enc4;

                        output = output + String.fromCharCode(chr1);

                        if (enc3 != 64) {

                              output = output + String.fromCharCode(chr2);

                        }

                        if (enc4 != 64) {

                              output = output + String.fromCharCode(chr3);

                        }

                  }

                  output = _utf8_decode(output);

                  return output;

            }

       

            // private method for UTF-8 encoding

            _utf8_encode = function (string) {

                  string = string.replace(/\r\n/g,"\n");

                  var utftext = "";

                  for (var n = 0; n < string.length; n++) {

                        var c = string.charCodeAt(n);

                        if (c < 128) {

                              utftext += String.fromCharCode(c);

                        } else if((c > 127) && (c < 2048)) {

                              utftext += String.fromCharCode((c >> 6) | 192);

                              utftext += String.fromCharCode((c & 63) | 128);

                        } else {

                              utftext += String.fromCharCode((c >> 12) | 224);

                              utftext += String.fromCharCode(((c >> 6) & 63) | 128);

                              utftext += String.fromCharCode((c & 63) | 128);

                        }

       

                  }

                  return utftext;

            }

       

            // private method for UTF-8 decoding

            _utf8_decode = function (utftext) {

                  var string = "";

                  var i = 0;

                  var c = c1 = c2 = 0;

                  while ( i < utftext.length ) {

                        c = utftext.charCodeAt(i);

                        if (c < 128) {

                              string += String.fromCharCode(c);

                              i++;

                        } else if((c > 191) && (c < 224)) {

                              c2 = utftext.charCodeAt(i+1);

                              string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));

                              i += 2;

                        } else {

                              c2 = utftext.charCodeAt(i+1);

                              c3 = utftext.charCodeAt(i+2);

                         string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));

                              i += 3;

                        }

                  }

                  return string;

            }

      }

       

       

      測(cè)試頁(yè)面: 

      <html>

            <head>

                  <script src="lib/base64.js" type="text/javascript"></script>

                  <script type="text/javascript">

                        var b = new Base64();

                        var str = b.encode("admin:admin");

                        alert("base64 encode:" + str);

                        str = b.decode(str);

                        alert("base64 decode:" + str);

                  </script>

            </head>

            <body>

            </body>

      </html>

       

       

      來(lái)源:http://tuhaitao.iteye.com/blog/653244


      贊 (

      發(fā)表評(píng)論