From:
http://www.webtoolkit.info/javascript-base64.html
/**
*
* Base64 encode / decode
* http://www.webtoolkit.info/
*
**/
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;
}
}
附注:
在线调试工具网址:
http://ostermiller.org/calc/encode.html
分享到:
相关推荐
JavaScript中的Base64编码是一种常见的数据编码方式,它将任意二进制数据转换为可打印的ASCII字符串。这种编码方式广泛应用于网络传输、存储和显示数据,特别是在处理图像、加密和JSON Web Tokens (JWT)等领域。 ...
在给定的`js-base64 20150121_javascriptbase64_carry9i1_jsbase64_64cacom_`这个压缩包中,我们预计会找到一个JavaScript实现的Base64库,可能被用于在浏览器环境中进行Base64编码和解码。 Base64算法的核心原理是...
3. **JavaScript中的实现**:在JavaScript中,可以使用内置的`btoa()`函数对字符串进行Base64编码,而`atob()`函数用于解码。这两个函数都是全局对象的一部分,适用于所有浏览器。然而,它们不支持Unicode字符,因此...
JavaScript Base64是一种在Web开发中广泛使用的编码技术,它允许我们将任意二进制数据转换为可打印的ASCII字符字符串,以便在网络上传输或者在HTML和JavaScript中存储。Base64编码是基于64个可打印字符来表示二进制...
在JavaScript中,Base64是一种常见的数据编码方式,它将任意二进制数据转换成ASCII字符串,便于在网络上传输。由于Base64编码是基于拉丁字母、数字、加号和斜线这64个字符,因此对于包含非ASCII字符(如中文)的数据...
用js实现的base64encode,base64decode函数. 包括: function base64encode(str) { function base64decode(str) { function utf16to8(str) { function utf8to16(str) { function doit() {
javascript版本的 base64解码和编码函数。
在IT领域,尤其是在Web开发中,图片文件与Base64编码字节数组字符串的转换是一种常见的操作。这种转换在不直接使用图片文件路径或URL,而是将图片数据嵌入到HTML、CSS或JavaScript中时非常有用。下面我们将详细探讨...
用javascript实现的base64编码与解码器
在JavaScript中,Base64的加密与解密是前端开发中的常见需求,尤其在处理图像、JSON数据或者进行跨域通信时。本文将深入探讨JavaScript中的Base64原理及其在前端应用。 一、Base64编码原理 Base64编码将每3个8位...
本资源提供的是一套完整的JavaScript实现,能够与ASP.NET和JAVA平台的3DES加密解密及Base64编码解码功能保持兼容。 首先,3DES的工作原理是在DES的基础上增加了一次加密过程,即使用同一个密钥进行三次加密,这大大...
使用方法:utf8to16(base64decode(你的加密字符串));
标题中提到的“JavaScript BASE64算法实现”指的是如何在JavaScript中对数据进行Base64编码与解码的过程。Base64是一种用64个ASCII字符来表示任意二进制数据的编码方法。由于网页上大部分字符都是ASCII码的,因此...
在JavaScript(JS)中加载Base64编码的图片是一种常见的技术,特别是在动态创建或处理图像时。Base64是一种用于将二进制数据转换为文本格式的方法,以便可以在HTML和JavaScript中安全地传递。以下是对这个主题的详细...
本文将深入探讨如何使用jQuery(JQ)、JavaScript(JS)以及base64编码技术来实现普通图片的上传、格式转换以及base64编码转换。我们将讨论jpg和png图片如何转化为base64字符串,以便在网络上传输或存储。 首先,让...
当我们需要在JavaScript环境中处理含有中文字符的数据,并通过网络传输时,就需要用到GBK编码和Base64的转换。 首先,我们要理解GBK编码的过程。GBK编码是GB2312的扩展,包含更多的汉字和符号,它使用两个字节来...
通过对这个资源包的学习,开发者可以深入理解Base64的工作原理,并掌握在JavaScript环境中进行Base64编码解码的实际操作,这对于处理数据传输、存储或者加密等方面的问题非常有用。同时,自定义实现也能帮助开发者更...
### 关于Base64编码及Java与JavaScript的实现 #### Base64简介 Base64是一种将二进制数据转换为ASCII字符串表示形式的方法。它主要用于处理非文本数据的存储和传输,例如图像、视频等多媒体文件。由于互联网传输...
在JavaScript中,我们可以使用内置的`btoa()`和`atob()`函数进行Base64的编码和解码。 `btoa()`函数用于Base64编码,它接受一个字符串作为参数,返回该字符串的Base64编码。例如: ```javascript let str = "Hello,...
【JavaScript Base64 文件上传详解】 在Web开发中,文件上传是一个常见的需求,尤其是在涉及到图像、文档等资源的交互时。然而,有时我们得到的文件数据是以Base64编码的形式存在,例如通过某些图片裁剪插件处理后...