base 64 加密解密

在线查看base64 加密解密: base64 加密解密

var base64EncodeChars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

var base64DecodeChars=new Array(
	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,-1,63,
	52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,
	-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
	15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,
	-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,
	41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1
);


function base64encode(str){
	var out="";
	var i=0;
	var len=str.length;
	var c1,c2,c3;

	while(i<len){
		c1=str.charCodeAt(i++)&0xff;

		if(i==len){
			out+=base64EncodeChars.charAt(c1>>2);
			out+=base64EncodeChars.charAt((c1&0x3)<<4);
			out+="==";
			break;
		}

		c2=str.charCodeAt(i++);

		if(i==len){
			out+=base64EncodeChars.charAt(c1>>2);
			out+=base64EncodeChars.charAt(((c1&0x3)<<4)|((c2&0xF0)>>4));
			out+=base64EncodeChars.charAt((c2&0xF)<<2);
			out+="=";
			break;
		}

		c3=str.charCodeAt(i++);

		out+=base64EncodeChars.charAt(c1>>2);
		out+=base64EncodeChars.charAt(((c1&0x3)<<4)|((c2&0xF0)>>4));
		out+=base64EncodeChars.charAt(((c2&0xF)<<2)|((c3&0xC0)>>6));
		out+=base64EncodeChars.charAt(c3&0x3F);
	}

	return out;
}