zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Jsbase64加密解密介绍

加密解密 介绍
2023-06-13 09:15:06 时间
复制代码代码如下:

<scripttype="text/javascript">

varbase64encodechars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
varbase64decodechars=newArray(
-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,-1,62,-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);

functionbase64encode(str){
varout,i,len;
varc1,c2,c3;
len=str.length;
i=0;
out="";
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);
}
returnout;
}

functionbase64decode(str){
varc1,c2,c3,c4;
vari,len,out;

len=str.length;

i=0;
out="";
while(i<len){

do{
c1=base64decodechars[str.charCodeAt(i++)&0xff];
}while(i<len&&c1==-1);
if(c1==-1)
break;

do{
c2=base64decodechars[str.charCodeAt(i++)&0xff];
}while(i<len&&c2==-1);
if(c2==-1)
break;

out+=String.fromCharCode((c1<<2)|((c2&0x30)>>4));

do{
c3=str.charCodeAt(i++)&0xff;
if(c3==61)
returnout;
c3=base64decodechars[c3];
}while(i<len&&c3==-1);
if(c3==-1)
break;

out+=String.fromCharCode(((c2&0xf)<<4)|((c3&0x3c)>>2));

do{
c4=str.charCodeAt(i++)&0xff;
if(c4==61)
returnout;
c4=base64decodechars[c4];
}while(i<len&&c4==-1);
if(c4==-1)
break;
out+=String.fromCharCode(((c3&0x03)<<6)|c4);
}
returnout;
}
</script>