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 相关文章推荐
Javascript 实用小技巧
Apr 07 Javascript
javascript常见用法总结
May 22 Javascript
jQuery实现DIV层收缩展开的方法
Feb 27 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
Sep 23 Javascript
JS中检测数据类型的几种方式及优缺点小结
Dec 12 Javascript
使用gulp搭建本地服务器并实现模拟ajax
Apr 05 Javascript
bootstrap Table服务端处理分页(后台是.net)
Oct 19 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
Jan 08 Javascript
jQuery实现碰到边缘反弹的动画效果
Feb 24 jQuery
JavaScript实现简单音乐播放器
Apr 17 Javascript
9102了,你还不会移动端真机调试吗
Mar 25 Javascript
Vue脚手架编写试卷页面功能
Mar 17 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/09/28 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
PHP设计模式之命令模式的深入解析
2013/06/13 PHP
php获取根域名方法汇总
2014/10/28 PHP
smarty中常用方法实例总结
2015/08/07 PHP
php简单的上传类分享
2016/05/15 PHP
详解WordPress中添加友情链接的方法
2016/05/21 PHP
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
firefox下input type=&quot;file&quot;的size是多大
2011/10/24 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
Vue + Elementui实现多标签页共存的方法
2019/06/12 Javascript
jquery实现吸顶导航效果
2020/01/08 jQuery
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
windows下ipython的安装与使用详解
2016/10/20 Python
Django自定义用户认证示例详解
2018/03/14 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
用python制作个视频下载器
2021/02/01 Python
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
文秘专业应届生求职信范文
2013/11/14 职场文书
英语系本科生求职信范文
2013/12/18 职场文书
初中同学聚会邀请函
2014/02/03 职场文书
婚纱摄影师求职信
2014/03/07 职场文书
cf搞笑广告词
2014/03/14 职场文书
党的生日演讲稿
2014/09/10 职场文书
优秀教师先进事迹材料
2014/12/15 职场文书
超市督导岗位职责
2015/04/10 职场文书
新郎新娘致辞
2015/07/31 职场文书
OpenCV-Python模板匹配人眼的实例
2021/06/08 Python