base64 加密 解密操作 前端js

作者: 一只大橘 | 来源:发表于2017-05-26 17:43 被阅读198次

    Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9 ,这样共有62个字符,此外两个可打印符号在不同的系统中而不同(本类库里面用的是`+`,`/`这两个字符)。一些如uuencode的其他编码方法,和之后binhex的版本使用不同的64字符集来代表6个二进制数字,但是它们不叫Base64。

    Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据。包括MIME的email,email via MIME, 在XML中存储复杂数据.

    base64解密操作

    var  base= newBase64();

    this.checkpiccode=base.decode('value');

    base64加密操作

    this._utf8_encode=base._utf8_encode('value');

    functionBase64() {

    var_keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

    this.decode= function(input) {

    varoutput="";

    varchr1,chr2,chr3;

    varenc1,enc2,enc3,enc4;

    vari=0;

    input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");

    while(i

    enc1=_keyStr.indexOf(input.charAt(i++));

    enc2=_keyStr.indexOf(input.charAt(i++));

    enc3=_keyStr.indexOf(input.charAt(i++));

    enc4=_keyStr.indexOf(input.charAt(i++));

    chr1=(enc1<<2)|(enc2>>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= this._utf8_decode(output);

    returnoutput;

    }

    //加密方法

    this._utf8_encode = function (string) {string=string.replace(/\r\n/g,"\n");varutftext ="";for(varn =0; n

    utftext+=String.fromCharCode(c);

    }elseif((c >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;

    }

    this._utf8_decode= function(utftext) {

    varstring="";

    vari=0;

    varc=0

    varc1=0;

    varc2=0;

    while(i

    c=utftext.charCodeAt(i);

    if(c<128) {

    string+=String.fromCharCode(c);

    i++;

    }else if((c>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;

    }

    }

    欢迎转载,不是本人原创,也是网上分享找到的资料 

    相关文章

      网友评论

        本文标题:base64 加密 解密操作 前端js

        本文链接:https://www.haomeiwen.com/subject/yhpxfxtx.html