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;n 127)&&(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(i 191)&&(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的加密解密方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!