`
nicky
  • 浏览: 39363 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

javascript实现BASE64Encoder编码和解码

阅读更多
<SCRIPT>
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(
    -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);

function base64encode(str) {
    var out, i, len;
    var c1, 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);
    }
    return out;
}

function base64decode(str) {
    var c1, c2, c3, c4;
    var i, len, out;

    len = str.length;
    i = 0;
    out = "";
    while(i < len) {
 /* c1 */
 do {
     c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
 } while(i < len && c1 == -1);
 if(c1 == -1)
     break;

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

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

 /* c3 */
 do {
     c3 = str.charCodeAt(i++) & 0xff;
     if(c3 == 61)
  return out;
     c3 = base64DecodeChars[c3];
 } while(i < len && c3 == -1);
 if(c3 == -1)
     break;

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

 /* c4 */
 do {
     c4 = str.charCodeAt(i++) & 0xff;
     if(c4 == 61)
  return out;
     c4 = base64DecodeChars[c4];
 } while(i < len && c4 == -1);
 if(c4 == -1)
     break;
 out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
    }
    return out;
}
alert(base64encode("password"));  
alert(base64decode("cGFzc3dvcmQ=")); 
</script>

 

分享到:
评论

相关推荐

    java和js相互base64编码解码

    总之,Java和JavaScript中Base64编码和解码的实现原理相似,都是将二进制数据转换为可打印的ASCII字符。Java自Java 8开始内置了Base64支持,而JavaScript则依赖于`btoa()`和`atob()`函数,或者使用第三方库。在实际...

    javascript处理中文base64编码

    总结来说,处理JavaScript中的中文Base64编码,关键在于正确地转换中文字符串到UTF-8字节数组,再进行Base64编码和解码。利用`TextEncoder` 和 `TextDecoder` API,或者Node.js的`Buffer`对象,可以有效地处理这个...

    Base64Encoder

    在提供的压缩包文件"Base64Encoder"中,很可能包含了一个实现Base64编码的工具或者示例代码,可以帮助开发者更方便地将图像转化为Base64格式,以便在网页中直接使用。通过这个工具,你可以上传图片文件,它会自动...

    JS端与java(android)端3DES加密解密和Base64编码解码文件

    本文将深入探讨如何在JavaScript(JS)客户端和Java(Android)端实现3DES加密解密以及Base64编码解码,这对于保护用户敏感信息和实现安全通信至关重要。 首先,3DES(Triple Data Encryption Standard)是一种加强...

    javascript gbk 编码 的Base64.zip

    总之,JavaScript中的GBK编码和Base64加解码是处理中文字符在网络中传输的关键技术。在实际应用中,你可能需要根据具体环境选择合适的方法,例如在浏览器环境中使用`TextEncoder`和`TextDecoder` API,或者在Node.js...

    Abdal Base64 Encoder Decoder:Base64编码器解码器工具-开源

    在技术实现上,这个工具可能基于常见的编程语言,如Python、JavaScript或C#,利用内置的Base64库函数来完成编码和解码过程。例如,Python中的`base64`模块,JavaScript的`btoa()`和`atob()`函数,或者C#中的`Convert...

    Delphi Base64 演示及躲坑

    本主题聚焦于在Delphi编程环境中如何使用Base64进行编码和解码,以及在与其他语言对接时可能遇到的问题和解决策略。 首先,让我们详细了解Delphi中原生的Base64实现。Delphi提供了`System.NetEncoding`单元,其中...

    图片文件与Base64编码字节数组字符串互转

    总之,图片文件与Base64编码字节数组字符串之间的转换是通过读取文件、进行Base64编码/解码来实现的。Java提供了内置的工具类来支持这一过程,使得这种转换变得简单而高效。理解并熟练运用这种转换技巧,对于开发者...

    Base64 Encoder-crx插件

    4. 用户友好:该插件的界面设计简洁,操作直观,使得即使是不熟悉编码概念的用户也能轻松上手,快速完成Base64编码和解码任务。 5. 集成到浏览器:作为一个Chrome扩展,Base64 Encoder-crx可以直接在浏览器中使用,...

    JavaScript Base64

    通常,我们可以使用TextEncoder和TextDecoder对象来实现对Unicode字符串的Base64编码和解码。 ```javascript let encoder = new TextEncoder(); let decoder = new TextDecoder(); let unicodeStr = "你好,世界!...

    Base64.java加密解密类文件

    在Java中,Base64编码和解码通常通过`java.util.Base64`类来实现,这个类从Java 8开始被引入。Base64.java文件可能是一个自定义实现,它提供了对Base64编码和解码的功能。 在Java中,`java.util.Base64`类提供了三...

    Base64加密解密

    Java 8开始引入了内置的Base64支持,提供`Encoder`和`Decoder`接口,可以方便地进行Base64的编码和解码。例如,`Base64.getEncoder().encodeToString(byte[])`用于编码,`Base64.getDecoder().decode(String)`用于...

    加密解密Base64的js封装代码

    Base64是一种常见的数据编码方式,它将...总的来说,Base64编码是前端开发者必备的一种工具,理解其原理和实现方式对于日常开发非常重要。在实际应用中,我们应根据具体需求选择合适的编码解码方法,同时注意安全问题。

    Base64算法完整源码与调用方法

    在JavaScript中,可以使用`btoa()`和`atob()`函数进行Base64编码和解码。 ```javascript let originalData = "Hello, World!"; // 编码 let encodedData = btoa(originalData); console.log(encodedData); // ...

    base64加解密

    这个类提供了一套完整的API,包括编码流(encoder stream)和解码流(decoder stream),这两个接口在提供的压缩文件`BASE64DecoderStream.java`和`BASE64EncoderStream.java`中可能会有实现。 `BASE64...

    base64加密解密js版

    在JavaScript中,我们可以使用内置的`btoa()`和`atob()`函数来进行Base64的加密(编码)和解密(解码)。`btoa()`用于将字符串编码为Base64,而`atob()`则用于将Base64编码的字符串解码回原始字符串。 例如,假设...

    Base64 Encoder / Decoder-crx插件

    Base64编码器/解码器,适用于Javascript字符串或文本 这个简单但功能强大的扩展程序可以转换Base64哈希中的任何输入,对开发人员和任何想要在Base64 Data Encodings规范(RFC 4648)中转换输入的人都非常有用。这是...

    二维码图片转换成BASE64字符串

    例如,一个基于JavaScript的网页应用可以将这个BASE64字符串作为数据发送到服务器,服务器端再解码还原为二维码图片,这样就实现了图片的无损传输。 总结起来,"二维码图片转换成BASE64字符串"涉及的主要知识点包括...

    java生成二维码以及二维码转base64字符串给前端

    在前端部分,JavaScript可以使用`atob()`函数将Base64字符串解码为二进制数据,然后利用`data:` URL模式将它显示为图像。例如: ```javascript let base64String = 'your_base64_string_here'; let qrCodeDataUrl =...

    图片 Base64 格式 字符串转换

    而“工具”可能是指利用这些源码编译生成的工具程序,帮助开发者快速完成Base64和图片之间的转换。 6. **`base64.html`和`Base64.java`文件**:`base64.html`可能是展示如何在HTML中使用Base64编码图片的示例代码,...

Global site tag (gtag.js) - Google Analytics