/** * @author wsf Base64 encode / decode */ var Base64 = { // 私有属性 _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", // 公共方法 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; }, // 解码 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; }, // 私有方法UTF-8编码 _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; }, // UTF-8解码 _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; } }
相关推荐
Javascript Base64编码解码
虽然JavaScript中可以使用原生的btoa和atob函数进行Base64的编...但是不支持中文字符,并且不支持url-safe的Base64编解码。当编码后的结果要是通过get请求传输时(比如跨域提交时),结果中包含有'/'字符将导致出错。
javascript版本的 base64解码和编码函数。
Delphi进行Base64编码后,如果使用javascript解码,会出现如下问题: 1. 汉字乱码 2. 空格变成 + 号 本资源演示Delphi代码,实现javascript能正确进行Base64解码,不出现上述2个问题。 解决思路:进行Base64前先...
做密码的都知道,此工具主要是用来验证base64编码解码正确性的。
使用方法:utf8to16(base64decode(你的加密字符串));
3des加密解密 base64编码解码的源代码 完全与标准算法一致,与C# java 结果一致
javascript 下,将字符串按gbk方式编码的Base64加解码。js gbk的base64
js实现base64编码解码 base64编码原理: base64可编码范围(ASCII字符范围内\u0000-\u00ff),所以每个字符必须8位,以3个字符为一组,转换为6bit的字节(3*8=4*6=24). 在每个6bit字节的高位添加0组成8bit的字节,然后将每8...
[角基64] 用于 AngularJS 应用程序的 Base64 编码和解码服务。 重要提示:该库依赖于最新的浏览器功能,用于编码和解码来自 base64 的字符串:window.atob() 和 window.btoa()。 要知道此库是否与您使用的浏览器版本...
java端:返回类型非字符接口调用StringUtils#base64AndCompressJson进行编码压缩 ,返回类型为字符接口调用StringUtils#base64Andcompress js 端:引入压缩包中的js文件 ,调用deBase64AndUncompress进行解压解码
用JavaScript实现PHP里的Base64编码与解码。 使用方法: encode64('要编码的字符串'); decode64('要解码的字符串');
提供一种Base64编码,并输出UTF-8格式的BASE64编码方式。本程序在微信小程序开发工具中已经测试通过。 Base64代码: [javascript] view plain copy print? (function(){ var BASE64_MAPPING = [ 'A','B','C','D',...
用javascript实现的base64编码与解码器
base62.js, node.js的javascript Base62编码/解码器 Base62.js JavaScript Base62编码/解码器什么是Base62编码?Base62编码将数字转换为ASCII字符串( 0 -9,一个z 和一个z ),反之亦然,这通常会导致比较短的字符串...
base64-js在纯JS中执行基本的base64编码/解码。 许多浏览器已经具有base64编码/解码功能,但是它用于文本数据,而不是通用二进制数据。 有时在浏览器中对二进制数据进行编码/解码很有用,这就是该模块的作用。 ...
前端实现Base64对文本和图片的编码,后端用Java Servlet作为接口实现编码的解码.
例:javascript /* * Base64编码/解码 * 例: * var obj=new Base64(); * var de=obj.Encode64("我的网站啊好"); * var En=obj.Decode64(de); */
VLQ(可变长度数量)Base64 算法(Node.js)的编解码器。 GitHub: NPM: 执照: 作者:奥列格·格里戈里耶夫 VQL + Base64 Base64 允许我们在文本字符串中表示一系列数字,可以以文本格式(JSON、XML 等)存储...
js代码进行base64的编码与解码