Js base64 加密解密介绍


Posted in Javascript onOctober 11, 2013
<script type="text/javascript"> 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) { 
do { 
c1 = base64decodechars[str.charCodeAt(i++) & 0xff]; 
} while (i < len && c1 == -1); 
if (c1 == -1) 
break; 
do { 
c2 = base64decodechars[str.charCodeAt(i++) & 0xff]; 
} while (i < len && c2 == -1); 
if (c2 == -1) 
break; 
out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4)); 
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)); 
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; 
} 
</script>
Javascript 相关文章推荐
简单实用的js调试logger组件实现代码
Nov 20 Javascript
js字符串转成JSON
Nov 07 Javascript
JavaScript实现SHA-1加密算法的方法
Mar 11 Javascript
JavaScript父子窗体间的调用方法
Mar 31 Javascript
JS根据生日算年龄的方法
May 05 Javascript
jQuery on()绑定动态元素出现的问题小结
Feb 19 Javascript
微信小程序 LOL 英雄介绍开发实例
Sep 30 Javascript
JS简单实现父子窗口传值功能示例【未使用iframe框架】
Sep 20 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
May 26 Javascript
微信小程序实现手指触摸画板
Jul 09 Javascript
微信小程序new Date()方法失效问题解决方法
Jul 29 Javascript
在Vue中使用antv的示例代码
Jun 29 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
Oct 11 #Javascript
js定时器怎么写?就是在特定时间执行某段程序
Oct 11 #Javascript
jQuery下的动画处理总结
Oct 10 #Javascript
了解了这些才能开始发挥jQuery的威力
Oct 10 #Javascript
JavaScript 垃圾回收机制分析
Oct 10 #Javascript
jQuery的attr与prop使用介绍
Oct 10 #Javascript
JavaScript 数组详解
Oct 10 #Javascript
You might like
PHP 实例化类的一点摘记
2008/03/23 PHP
php中创建和调用webservice接口示例
2014/07/25 PHP
PHP实现执行外部程序的方法详解
2017/08/17 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
2019/05/14 PHP
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
2015/11/30 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
微信小程序页面传值实例分析
2017/04/19 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
python决策树之CART分类回归树详解
2017/12/20 Python
Sanic框架蓝图用法实例分析
2018/07/17 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
Foreo国际站:Foreo International
2018/10/29 全球购物
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
The North Face北面法国官网:美国著名户外品牌
2019/11/01 全球购物
个人自我鉴定范文
2013/10/04 职场文书
建筑学推荐信
2013/11/03 职场文书
葡萄牙语专业个人求职信
2013/12/10 职场文书
九年级英语教学反思
2014/01/31 职场文书
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
消防志愿者活动方案
2014/08/23 职场文书
公司委托书范本5篇
2014/09/20 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
教师群众路线心得体会
2014/11/04 职场文书
幽默导游词开场白
2015/05/29 职场文书
死亡诗社观后感
2015/06/05 职场文书