`

js的base64

    博客分类:
  • js
 
阅读更多
var Base64 = {

// private property
_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",

// public method for encoding
encode : function (input) {
    var output = "";
    var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
    var i = 0;

    input = Base64._utf8_encode(input);

    while (i < input.length) {

        chr1 = input.charCodeAt(i++);
        chr2 = input.charCodeAt(i++);
        chr3 = input.charCodeAt(i++);

        enc1 = chr1 >> 2;
        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
        enc4 = chr3 & 63;

        if (isNaN(chr2)) {
            enc3 = enc4 = 64;
        } else if (isNaN(chr3)) {
            enc4 = 64;
        }

        output = output +
        this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
        this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);

    }

    return output;
},

// public method for decoding
decode : function (input) {
    var output = "";
    var chr1, chr2, chr3;
    var enc1, enc2, enc3, enc4;
    var i = 0;

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

    while (i < input.length) {

        enc1 = this._keyStr.indexOf(input.charAt(i++));
        enc2 = this._keyStr.indexOf(input.charAt(i++));
        enc3 = this._keyStr.indexOf(input.charAt(i++));
        enc4 = this._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 = Base64._utf8_decode(output);

    return output;

},

// private method for UTF-8 encoding
_utf8_encode : function (string) {
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";

    for (var n = 0; n < string.length; n++) {

        var c = string.charCodeAt(n);

        if (c < 128) {
            utftext += String.fromCharCode(c);
        }
        else if((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);
        }

    }

    return utftext;
},

// private method for UTF-8 decoding
_utf8_decode : function (utftext) {
    var string = "";
    var i = 0;
    var c = c1 = c2 = 0;

    while ( i < utftext.length ) {

        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;
        }

    }

    return string;
}
}

//encode
Base64.encode("Test"); //VGVzdA==

//decode
Base64.decode("VGVzdA=="); // Test
//该代码片段来自于: http://www.sharejs.com/codes/javascript/4341
分享到:
评论

相关推荐

    JS 版本的base64函数实现(base64encode,base64decode)

    用js实现的base64encode,base64decode函数. 包括: function base64encode(str) { function base64decode(str) { function utf16to8(str) { function utf8to16(str) { function doit() {

    js base64 解码解决中文乱码问题

    使用方法:utf8to16(base64decode(你的加密字符串));

    js base64编码格式图片另存为下载

    在JavaScript(JS)中,Base64是一种常用的编码方式,用于将二进制数据转换成ASCII字符串,便于在网络上传输。在前端开发中,我们有时会遇到需要将Base64编码的图片保存或下载到本地的情况。这个过程涉及到浏览器的...

    js base64和md5工具类

    js base64和md5工具类js base64和md5工具类js base64和md5工具类js base64和md5工具类

    js的base64(base64.js)

    js的base64(base64.js)

    crypto-js base64

    crypto-js base64 加密解密算法 //aes加密 function encrypt(word) { var key = CryptoJS.enc.Utf8.parse("1234567890000000"); //16位 var iv = CryptoJS.enc.Utf8.parse("1234567890000000"); var encrypted =...

    PHP+JS Base64和URI编码解码混合使用

    在IT行业中,编码和解码是数据传输与存储过程中不可或缺的部分。...在"PHP+JS Base64和URI编码解码混合使用"这个主题中,我们可以学习到如何在客户端和服务器之间有效地处理编码数据,提高代码的可读性和兼容性。

    java和js相互base64编码解码

    在JavaScript中,虽然早期版本没有内置的Base64函数,但可以通过使用浏览器提供的`btoa()`和`atob()`方法或者第三方库(如`window.atob`和`window.btoa`在Node.js环境中不可用)来实现。在`base64InOut.js`文件中,...

    js-base64 20150121_javascriptbase64_carry9i1_jsbase64_64cacom_

    在给定的`js-base64 20150121_javascriptbase64_carry9i1_jsbase64_64cacom_`这个压缩包中,我们预计会找到一个JavaScript实现的Base64库,可能被用于在浏览器环境中进行Base64编码和解码。 Base64算法的核心原理是...

    JS Base64加密源码

    Javascript使用64位加密技术来加密字符串

    javascript base64

    JavaScript中的Base64编码是一种常见的数据编码方式,它将任意二进制数据转换为可打印的ASCII字符串。这种编码方式广泛应用于网络传输、存储和显示数据,特别是在处理图像、加密和JSON Web Tokens (JWT)等领域。 ...

    JavaScript Base64

    JavaScript Base64是一种在Web开发中广泛使用的编码技术,它允许我们将任意二进制数据转换为可打印的ASCII字符字符串,以便在网络上传输或者在HTML和JavaScript中存储。Base64编码是基于64个可打印字符来表示二进制...

    JS base64 加密解密

    为了解决这些问题,开发者通常会使用第三方库,如`base64-js`库,这是一个轻量级的JavaScript库,提供了更全面的Base64编码和解码功能,包括对Unicode字符串的支持。 例如,`base64-js`库中,你可以这样使用: ```...

    js加载base64图片

    在JavaScript(JS)中加载Base64编码的图片是一种常见的技术,特别是在动态创建或处理图像时。Base64是一种用于将二进制数据转换为文本格式的方法,以便可以在HTML和JavaScript中安全地传递。以下是对这个主题的详细...

    javascript处理中文base64编码

    在JavaScript中,Base64是一种常见的数据编码方式,它将任意二进制数据转换成ASCII字符串,便于在网络上传输。由于Base64编码是基于拉丁字母、数字、加号和斜线这64个字符,因此对于包含非ASCII字符(如中文)的数据...

    js对图片base64编码字符串进行解码并输出图像示例

    在本示例中,我们讨论的是如何使用JavaScript对基于Base64编码的图片进行解码并显示在网页上。Base64是一种用于将二进制数据编码为ASCII字符串的编码方式,它在传输或存储非文本数据时非常有用,例如图片。 在HTML...

    base64.min.js 1.2.0版本

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二...此资源是依赖包base64.js分享给大家,希望能给大家带来帮助,如有其他依赖包需求请留言,我会尽量分享给大家。

    Base64与byte[]相互转换

    ### Base64与byte[]相互转换 #### 一、Base64编码简介 Base64是一种基于64个可打印字符来表示二进制数据的表示方法。它被广泛应用于电子邮件、网页等需要将二进制数据转换为文本格式进行传输的场景中。Base64编码...

    js base64加密解密

    base64加密解密源码,纯js编写,内容copy于互联网,用作保留使用。

    js-base64-3.7.5.tgz

    "js-base64-3.7.5.tgz" 是一个JavaScript库的压缩包,主要功能是实现Base64编码和解码。Base64是一种用于在网络上传输二进制数据的方法,它将二进制数据转换为ASCII字符串,便于在不支持二进制传输的协议(如早期的...

Global site tag (gtag.js) - Google Analytics