Javascript base64加密解密
"utf-8">
base64.js库源码
function Base64() {// private property_keyStr &#61; "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789&#43;/&#61;";// public method for encodingthis.encode &#61; function (input) {var output &#61; "";var chr1, chr2, chr3, enc1, enc2, enc3, enc4;var i &#61; 0;input &#61; _utf8_encode(input);while (i < input.length) {chr1 &#61; input.charCodeAt(i&#43;&#43;);chr2 &#61; input.charCodeAt(i&#43;&#43;);chr3 &#61; input.charCodeAt(i&#43;&#43;);enc1 &#61; chr1 >> 2;enc2 &#61; ((chr1 & 3) <<4) | (chr2 >> 4);enc3 &#61; ((chr2 & 15) <<2) | (chr3 >> 6);enc4 &#61; chr3 & 63;if (isNaN(chr2)) {enc3 &#61; enc4 &#61; 64;} else if (isNaN(chr3)) {enc4 &#61; 64;}output &#61; output &#43;_keyStr.charAt(enc1) &#43; _keyStr.charAt(enc2) &#43;_keyStr.charAt(enc3) &#43; _keyStr.charAt(enc4);}return output;}// public method for decodingthis.decode &#61; function (input) {var output &#61; "";var chr1, chr2, chr3;var enc1, enc2, enc3, enc4;var i &#61; 0;input &#61; input.replace(/[^A-Za-z0-9\&#43;\/\&#61;]/g, "");while (i < input.length) {enc1 &#61; _keyStr.indexOf(input.charAt(i&#43;&#43;));enc2 &#61; _keyStr.indexOf(input.charAt(i&#43;&#43;));enc3 &#61; _keyStr.indexOf(input.charAt(i&#43;&#43;));enc4 &#61; _keyStr.indexOf(input.charAt(i&#43;&#43;));chr1 &#61; (enc1 <<2) | (enc2 >> 4);chr2 &#61; ((enc2 & 15) <<4) | (enc3 >> 2);chr3 &#61; ((enc3 & 3) <<6) | enc4;output &#61; output &#43; String.fromCharCode(chr1);if (enc3 !&#61; 64) {output &#61; output &#43; String.fromCharCode(chr2);}if (enc4 !&#61; 64) {output &#61; output &#43; String.fromCharCode(chr3);}}output &#61; _utf8_decode(output);return output;}// private method for UTF-8 encoding_utf8_encode &#61; function (string) {string &#61; string.replace(/\r\n/g,"\n");var utftext &#61; "";for (var n &#61; 0; n <string.length; n&#43;&#43;) {var c &#61; string.charCodeAt(n);if (c <128) {utftext &#43;&#61; String.fromCharCode(c);} else if((c > 127) && (c <2048)) {utftext &#43;&#61; String.fromCharCode((c >> 6) | 192);utftext &#43;&#61; String.fromCharCode((c & 63) | 128);} else {utftext &#43;&#61; String.fromCharCode((c >> 12) | 224);utftext &#43;&#61; String.fromCharCode(((c >> 6) & 63) | 128);utftext &#43;&#61; String.fromCharCode((c & 63) | 128);}}return utftext;}// private method for UTF-8 decoding_utf8_decode &#61; function (utftext) {var string &#61; "";var i &#61; 0;var c &#61; c1 &#61; c2 &#61; 0;while ( i < utftext.length ) {c &#61; utftext.charCodeAt(i);if (c <128) {string &#43;&#61; String.fromCharCode(c);i&#43;&#43;;} else if((c > 191) && (c <224)) {c2 &#61; utftext.charCodeAt(i&#43;1);string &#43;&#61; String.fromCharCode(((c & 31) <<6) | (c2 & 63));i &#43;&#61; 2;} else {c2 &#61; utftext.charCodeAt(i&#43;1);c3 &#61; utftext.charCodeAt(i&#43;2);string &#43;&#61; String.fromCharCode(((c & 15) <<12) | ((c2 & 63) <<6) | (c3 & 63));i &#43;&#61; 3;}}return string;}
}