`
huangro
  • 浏览: 332466 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Javascript base64

阅读更多
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

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

    js-base64 20150121_javascriptbase64_carry9i1_jsbase64_64cacom_

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

    javascript base64加密

    3. **JavaScript中的实现**:在JavaScript中,可以使用内置的`btoa()`函数对字符串进行Base64编码,而`atob()`函数用于解码。这两个函数都是全局对象的一部分,适用于所有浏览器。然而,它们不支持Unicode字符,因此...

    JavaScript Base64

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

    javascript处理中文base64编码

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

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

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

    javascript base64编码解码函数

    javascript版本的 base64解码和编码函数。

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

    在IT领域,尤其是在Web开发中,图片文件与Base64编码字节数组字符串的转换是一种常见的操作。这种转换在不直接使用图片文件路径或URL,而是将图片数据嵌入到HTML、CSS或JavaScript中时非常有用。下面我们将详细探讨...

    javascript base64编码

    用javascript实现的base64编码与解码器

    Base64_javascript_base64_

    在JavaScript中,Base64的加密与解密是前端开发中的常见需求,尤其在处理图像、JSON数据或者进行跨域通信时。本文将深入探讨JavaScript中的Base64原理及其在前端应用。 一、Base64编码原理 Base64编码将每3个8位...

    3des加密解密base64编码解码完全与ASP.NET,JAVA,兼容的js

    本资源提供的是一套完整的JavaScript实现,能够与ASP.NET和JAVA平台的3DES加密解密及Base64编码解码功能保持兼容。 首先,3DES的工作原理是在DES的基础上增加了一次加密过程,即使用同一个密钥进行三次加密,这大大...

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

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

    JavaScript BASE64算法实现(完美解决中文乱码)

    标题中提到的“JavaScript BASE64算法实现”指的是如何在JavaScript中对数据进行Base64编码与解码的过程。Base64是一种用64个ASCII字符来表示任意二进制数据的编码方法。由于网页上大部分字符都是ASCII码的,因此...

    js加载base64图片

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

    JQ JS javascript 普通图片上传 图片格式转换 图片base64转换 jpg转base64 png转base64

    本文将深入探讨如何使用jQuery(JQ)、JavaScript(JS)以及base64编码技术来实现普通图片的上传、格式转换以及base64编码转换。我们将讨论jpg和png图片如何转化为base64字符串,以便在网络上传输或存储。 首先,让...

    javascript gbk 编码 的Base64.zip

    当我们需要在JavaScript环境中处理含有中文字符的数据,并通过网络传输时,就需要用到GBK编码和Base64的转换。 首先,我们要理解GBK编码的过程。GBK编码是GB2312的扩展,包含更多的汉字和符号,它使用两个字节来...

    base64加密解密源码(js)

    通过对这个资源包的学习,开发者可以深入理解Base64的工作原理,并掌握在JavaScript环境中进行Base64编码解码的实际操作,这对于处理数据传输、存储或者加密等方面的问题非常有用。同时,自定义实现也能帮助开发者更...

    base64,java与JavaScript实现

    ### 关于Base64编码及Java与JavaScript的实现 #### Base64简介 Base64是一种将二进制数据转换为ASCII字符串表示形式的方法。它主要用于处理非文本数据的存储和传输,例如图像、视频等多媒体文件。由于互联网传输...

    javascript的base64加密解密

    在JavaScript中,我们可以使用内置的`btoa()`和`atob()`函数进行Base64的编码和解码。 `btoa()`函数用于Base64编码,它接受一个字符串作为参数,返回该字符串的Base64编码。例如: ```javascript let str = "Hello,...

    JavaScript Base64 作为文件上传的实例代码解析

    【JavaScript Base64 文件上传详解】 在Web开发中,文件上传是一个常见的需求,尤其是在涉及到图像、文档等资源的交互时。然而,有时我们得到的文件数据是以Base64编码的形式存在,例如通过某些图片裁剪插件处理后...

Global site tag (gtag.js) - Google Analytics