BASE64加密源码(JavaScript)

xiaoxiao2021-02-28  67

Base64.encode(pw) var Base64 = {  _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" ,      encode : function (e) {             var t = "" ;             var n, r, i, s, o, u, a;             var f = 0;            e = Base64._utf8_encode(e);             while (f < e.length) {                 n = e.charCodeAt(f++);                 r = e.charCodeAt(f++);                 i = e.charCodeAt(f++);                 s = n >> 2;                 o = (n & 3) << 4 | r >> 4;                 u = (r & 15) << 2 | i >> 6;                 a = i & 63;                  if (isNaN(r)) {                      u = a = 64                 } else if (isNaN(i)) {                      a = 64                 }                 t = t + this ._keyStr.charAt(s) + this ._keyStr.charAt(o)                            + this ._keyStr.charAt(u) + this ._keyStr.charAt(a)            }             return t      },      decode : function (e) {             var t = "" ;             var n, r, i;             var s, o, u, a;             var f = 0;            e = e.replace( /[^A-Za-z0-9+/=]/g , "" );             while (f < e.length) {                 s = this ._keyStr.indexOf(e.charAt(f++));                 o = this ._keyStr.indexOf(e.charAt(f++));                 u = this ._keyStr.indexOf(e.charAt(f++));                 a = this ._keyStr.indexOf(e.charAt(f++));                 n = s << 2 | o >> 4;                 r = (o & 15) << 4 | u >> 2;                 i = (u & 3) << 6 | a;                 t = t + String.fromCharCode(n);                  if (u != 64) {                      t = t + String.fromCharCode(r)                 }                  if (a != 64) {                      t = t + String.fromCharCode(i)                 }            }            t = Base64._utf8_decode(t);             return t      },      _utf8_encode : function (e) {            e = e.replace( /rn/g , "n" );             var t = "" ;             for ( var n = 0; n < e.length; n++) {                  var r = e.charCodeAt(n);                  if (r < 128) {                      t += String.fromCharCode(r)                 } else if (r > 127 && r < 2048) {                      t += String.fromCharCode(r >> 6 | 192);                      t += String.fromCharCode(r & 63 | 128)                 } else {                      t += String.fromCharCode(r >> 12 | 224);                      t += String.fromCharCode(r >> 6 & 63 | 128);                      t += String.fromCharCode(r & 63 | 128)                 }            }             return t      },      _utf8_decode : function (e) {             var t = "" ;             var n = 0;             var r = c1 = c2 = 0;             while (n < e.length) {                 r = e.charCodeAt(n);                  if (r < 128) {                      t += String.fromCharCode(r);                      n++                 } else if (r > 191 && r < 224) {                      c2 = e.charCodeAt(n + 1);                      t += String.fromCharCode((r & 31) << 6 | c2 & 63);                      n += 2                 } else {                      c2 = e.charCodeAt(n + 1);                      c3 = e.charCodeAt(n + 2);                      t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3                                 & 63);                      n += 3                 }            }             return t;      } }
转载请注明原文地址: https://www.6miu.com/read-29310.html

最新回复(0)