JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)

JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)射流研究…实现BASE64编码和BASE64_DECODE(实例代码)需要的朋友可以过来参考下,希望对大家有所帮助Base64是一种基于64个可打印字符来表示二进制数据的表示方法由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符三个字节有24个比特,对应于四个Base64单元,即3个字节需要用四个可打印字符来表示它可用来作为电子邮件的传输编码在Base64中的可打印字符包括字母A-Z,a-z,数字0-9 ,这样共有62个字符,此外两个可打印符号在不同的系统中而不同(本类库里面用的是` `,`/`这两个字符)一些如把二进制文件编码为文本文件的其他编码方法,和之后binhex的版本使用不同的64字符集来代表6个二进制数字,但是它们不叫Base64Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据包括哑剧的电子邮件,通过哑剧的电子邮件,在可扩展标记语言中存储复杂数据Base64其实是一种简单的置换加密方式,但是BASE64的用处往往并不是为了防止信息泄露,而且为了方便传输,进过BASE64编码后的信息会比原始信息长,大概是4/3倍实现代码一、测试可以用var base 64 encode chars= abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz 0123456789/;varbase 64 decodechars=新数组(-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,-2,-1,2,-1,62,-1,-1,63,52,53,54,55/***base64编码*@param{Object}str*/functionbase64encode(str){瓦劳特,我,伦varc1,c2,C3;len=字符串长度I=0;out=while(ilen){C1=海峡charcodeat(I)0x ff;if(i==len){out=base 64 encodecharscharat(c12);out=base 64 encodecharscharat((c10x 3)4);out===打破;}C2=海峡charcode at(I);if(i==len){out=base 64 encodecharscharat(c12);out=base 64 encodecharscharat((c10x 3)4)|((c20xf 0)4));out=base 64 encodecharscharat((c20xF)2);out==打破;}C3=海峡charcode at(I);out=base 64 encodecharscharat(c12);out=base 64 encodecharscharat((c10x 3)4)|((c20xf 0)4));out=base 64 encodecharscharat((c20xF)2)|((c30xc 0)6));out=base 64 encodecharscharat(c 30x3f);}返回;}/***base64解码*@param{Object}str*/functionbase64decode(str){varc1,c2,c3,C4;瓦里,莱恩,出去len=字符串长度I=0;out=while(ilen){/*c1*/做{C1=base 64 decade chars[strcharcodeat(I)0x ff];}while(伊伦·C1==-1);如果(c1==-1)打破;/*c2*/做{C2=base 64 decade chars[strcharcodeat(I)0x ff];}while(ile nc2==-1);如果(c2==-1)打破;out=字符串from charcode((c12)|((c20x 30)4));/*c3*/做{C3=海峡charcodeat(I)0x ff;如果(c3==61)返回;C3=base64解码器[C3];}while(ile nc3==-1);如果(c3==-1)打破;out=字符串from charcode((c20XF)4)|((c30x3C)2));/*c4*/做{C4=海峡charcodeat(I)0x ff;如果(c4==61)返回;C4=base64解码器[C4];}while(伊伦·C4==-1);如果(c4==-1)打破;out=字符串来自charcode((c30x 03)6)| C4);}返回;}/***utf16转utf8*@param{Object}str*/functionutf16to8(str){varout,I,len,c;out=len=字符串长度for(I=0;ileni ){c=strcharcode at(I);if((c=0x0001)(c=0x007F)){out=str查拉特(一);}其他if(c0x07FF){out=字符串from charcode(0x E0 |((c12)0x0F));out=字符串from charcode(0x 80 |((C6)0x3F));out=字符串from charcode(0x 80 |((c0)0x3F));}否则{out=字符串from charcode(0xc 0 |((C6)0x1F));out=字符串from charcode(0x 80 |((c0)0x3F));}}返回;}/***utf8转utf16*@param{Object}str*/functionutf8to16(str){varout,I,len,c;varchar2,char3out=len=字符串长度I=0;while(ilen){c=strcharcode at(I);开关(c4){案例0:案例1:案例2:案例3:案例4:案例5:案例6:案例7://0xxxxx

xx

out=str。charat(I-1);

打破;

案例12:

案例13:

//110

JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)