Javascript实现base64的加密解密方法示例
这几天使用PHP向前端传值的时候,遇到一个问题,要将代码传过去赋值。如果使用urlencode()和urldecode()函数,就会出现js无法解码的情况,因为php和js的相关函数算法不一致。于是准备使用通用的base64加密解密。
base64加密解密
下方是base64用javascript写出来的函数和方法。
//1.加密解密方法使用:
//1.加密
varstr='124中文内容';
varbase=newBase64();
varresult=base.encode(str);
//document.write(result);
//2.解密
varresult2=base.decode(result);
document.write(result2);
//2.加密、解密算法封装:
functionBase64(){
//privateproperty
_keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
//publicmethodforencoding
this.encode=function(input){
varoutput="";
varchr1,chr2,chr3,enc1,enc2,enc3,enc4;
vari=0;
input=_utf8_encode(input);
while(i>2;
enc2=((chr1&3)<<4)|(chr2>>4);
enc3=((chr2&15)<<2)|(chr3>>6);
enc4=chr3&63;
if(isNaN(chr2)){
enc3=enc4=64;
}elseif(isNaN(chr3)){
enc4=64;
}
output=output+
_keyStr.charAt(enc1)+_keyStr.charAt(enc2)+
_keyStr.charAt(enc3)+_keyStr.charAt(enc4);
}
returnoutput;
}
//publicmethodfordecoding
this.decode=function(input){
varoutput="";
varchr1,chr2,chr3;
varenc1,enc2,enc3,enc4;
vari=0;
input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");
while(i>4);
chr2=((enc2&15)<<4)|(enc3>>2);
chr3=((enc3&3)<<6)|enc4;
output=output+String.fromCharCode(chr1);
if(enc3!=64){
output=output+String.fromCharCode(chr2);
}
if(enc4!=64){
output=output+String.fromCharCode(chr3);
}
}
output=_utf8_decode(output);
returnoutput;
}
//privatemethodforUTF-8encoding
_utf8_encode=function(string){
string=string.replace(/\r\n/g,"\n");
varutftext="";
for(varn=0;n127)&&(c<2048)){
utftext+=String.fromCharCode((c>>6)|192);
utftext+=String.fromCharCode((c&63)|128);
}else{
utftext+=String.fromCharCode((c>>12)|224);
utftext+=String.fromCharCode(((c>>6)&63)|128);
utftext+=String.fromCharCode((c&63)|128);
}
}
returnutftext;
}
//privatemethodforUTF-8decoding
_utf8_decode=function(utftext){
varstring="";
vari=0;
varc=c1=c2=0;
while(i191)&&(c<224)){
c2=utftext.charCodeAt(i+1);
string+=String.fromCharCode(((c&31)<<6)|(c2&63));
i+=2;
}else{
c2=utftext.charCodeAt(i+1);
c3=utftext.charCodeAt(i+2);
string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));
i+=3;
}
}
returnstring;
}
}
以上所述是小编给大家介绍的Javascript实现base64的加密解密方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!