<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和JavaScript中Base64编码和解码的实现原理相似,都是将二进制数据转换为可打印的ASCII字符。Java自Java 8开始内置了Base64支持,而JavaScript则依赖于`btoa()`和`atob()`函数,或者使用第三方库。在实际...
总结来说,处理JavaScript中的中文Base64编码,关键在于正确地转换中文字符串到UTF-8字节数组,再进行Base64编码和解码。利用`TextEncoder` 和 `TextDecoder` API,或者Node.js的`Buffer`对象,可以有效地处理这个...
在提供的压缩包文件"Base64Encoder"中,很可能包含了一个实现Base64编码的工具或者示例代码,可以帮助开发者更方便地将图像转化为Base64格式,以便在网页中直接使用。通过这个工具,你可以上传图片文件,它会自动...
本文将深入探讨如何在JavaScript(JS)客户端和Java(Android)端实现3DES加密解密以及Base64编码解码,这对于保护用户敏感信息和实现安全通信至关重要。 首先,3DES(Triple Data Encryption Standard)是一种加强...
总之,JavaScript中的GBK编码和Base64加解码是处理中文字符在网络中传输的关键技术。在实际应用中,你可能需要根据具体环境选择合适的方法,例如在浏览器环境中使用`TextEncoder`和`TextDecoder` API,或者在Node.js...
在技术实现上,这个工具可能基于常见的编程语言,如Python、JavaScript或C#,利用内置的Base64库函数来完成编码和解码过程。例如,Python中的`base64`模块,JavaScript的`btoa()`和`atob()`函数,或者C#中的`Convert...
本主题聚焦于在Delphi编程环境中如何使用Base64进行编码和解码,以及在与其他语言对接时可能遇到的问题和解决策略。 首先,让我们详细了解Delphi中原生的Base64实现。Delphi提供了`System.NetEncoding`单元,其中...
总之,图片文件与Base64编码字节数组字符串之间的转换是通过读取文件、进行Base64编码/解码来实现的。Java提供了内置的工具类来支持这一过程,使得这种转换变得简单而高效。理解并熟练运用这种转换技巧,对于开发者...
4. 用户友好:该插件的界面设计简洁,操作直观,使得即使是不熟悉编码概念的用户也能轻松上手,快速完成Base64编码和解码任务。 5. 集成到浏览器:作为一个Chrome扩展,Base64 Encoder-crx可以直接在浏览器中使用,...
通常,我们可以使用TextEncoder和TextDecoder对象来实现对Unicode字符串的Base64编码和解码。 ```javascript let encoder = new TextEncoder(); let decoder = new TextDecoder(); let unicodeStr = "你好,世界!...
在Java中,Base64编码和解码通常通过`java.util.Base64`类来实现,这个类从Java 8开始被引入。Base64.java文件可能是一个自定义实现,它提供了对Base64编码和解码的功能。 在Java中,`java.util.Base64`类提供了三...
Java 8开始引入了内置的Base64支持,提供`Encoder`和`Decoder`接口,可以方便地进行Base64的编码和解码。例如,`Base64.getEncoder().encodeToString(byte[])`用于编码,`Base64.getDecoder().decode(String)`用于...
Base64是一种常见的数据编码方式,它将...总的来说,Base64编码是前端开发者必备的一种工具,理解其原理和实现方式对于日常开发非常重要。在实际应用中,我们应根据具体需求选择合适的编码解码方法,同时注意安全问题。
在JavaScript中,可以使用`btoa()`和`atob()`函数进行Base64编码和解码。 ```javascript let originalData = "Hello, World!"; // 编码 let encodedData = btoa(originalData); console.log(encodedData); // ...
这个类提供了一套完整的API,包括编码流(encoder stream)和解码流(decoder stream),这两个接口在提供的压缩文件`BASE64DecoderStream.java`和`BASE64EncoderStream.java`中可能会有实现。 `BASE64...
在JavaScript中,我们可以使用内置的`btoa()`和`atob()`函数来进行Base64的加密(编码)和解密(解码)。`btoa()`用于将字符串编码为Base64,而`atob()`则用于将Base64编码的字符串解码回原始字符串。 例如,假设...
Base64编码器/解码器,适用于Javascript字符串或文本 这个简单但功能强大的扩展程序可以转换Base64哈希中的任何输入,对开发人员和任何想要在Base64 Data Encodings规范(RFC 4648)中转换输入的人都非常有用。这是...
例如,一个基于JavaScript的网页应用可以将这个BASE64字符串作为数据发送到服务器,服务器端再解码还原为二维码图片,这样就实现了图片的无损传输。 总结起来,"二维码图片转换成BASE64字符串"涉及的主要知识点包括...
在前端部分,JavaScript可以使用`atob()`函数将Base64字符串解码为二进制数据,然后利用`data:` URL模式将它显示为图像。例如: ```javascript let base64String = 'your_base64_string_here'; let qrCodeDataUrl =...
而“工具”可能是指利用这些源码编译生成的工具程序,帮助开发者快速完成Base64和图片之间的转换。 6. **`base64.html`和`Base64.java`文件**:`base64.html`可能是展示如何在HTML中使用Base64编码图片的示例代码,...