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使用技巧精萃[代码非常实用]
Nov 21 Javascript
精通Javascript系列之Javascript基础篇
Jun 07 Javascript
JQuery Tips相关(1)----关于$.Ready()
Aug 14 Javascript
javascript日期计算实例分析
Jun 29 Javascript
vue2.0+webpack环境的构造过程
Nov 08 Javascript
解决拦截器对ajax请求的拦截实例详解
Dec 21 Javascript
JavaScript实现时钟滴答声效果
Jan 29 Javascript
强大的JavaScript响应式图表Chartist.js的使用
Sep 13 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
Dec 01 Javascript
解决axios post 后端无法接收数据的问题
Oct 29 Javascript
深入解析微信小程序开发中遇到的几个小问题
Jul 11 Javascript
Js图片点击切换轮播实现代码
Jul 27 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开发过程中常用函数收藏
2009/12/14 PHP
php 静态变量与自定义常量的使用方法
2010/01/26 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
PHP使用Http Post请求发送Json对象数据代码解析
2020/07/16 PHP
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
js实现DOM走马灯特效的方法
2015/01/21 Javascript
jQuery实现长按按钮触发事件的方法
2015/02/02 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
python 删除非空文件夹的实例
2018/04/26 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
python是怎么被发明的
2020/06/15 Python
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
瑞士领先的网上超市:LeShop.ch
2018/11/14 全球购物
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
音乐学专业求职信
2014/07/22 职场文书
单位单身证明样本
2014/10/11 职场文书
环境建议书
2015/02/04 职场文书
工资证明范本
2015/06/12 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js