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 相关文章推荐
Hutia 的 JS 代码集
Oct 24 Javascript
jquery 图片Silhouette Fadeins渐显效果
Feb 07 Javascript
jQuery实现form表单reset按钮重置清空表单功能
Dec 18 Javascript
提交表单时执行func方法实现代码
Mar 17 Javascript
使用PHP+JQuery+Ajax分页的实现
Apr 23 Javascript
jquery重复提交请求的原因浅析
May 23 Javascript
avascript中的自执行匿名函数应用示例
Sep 15 Javascript
jQuery实现获取table表格第一列值的方法
Mar 01 Javascript
javaScript知识点总结(必看篇)
Jun 10 Javascript
Extjs表单输入框异步校验的插件实现方法
Mar 20 Javascript
Bootstrap Table快速完美搭建后台管理系统
Sep 20 Javascript
pageGroup.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 APC配置文件2套和参数详解
2014/06/11 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
jquery last-child 列表最后一项的样式
2010/01/22 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
Dom操作之兼容技巧分享
2011/09/20 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
详解vue项目接入微信JSSDK的坑
2018/12/14 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
python进阶教程之循环对象
2014/08/30 Python
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
铲车司机岗位职责
2014/03/15 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
竞选大学学委演讲稿
2014/09/13 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
2014年审计工作总结
2014/11/17 职场文书
初中优秀学生评语
2014/12/29 职场文书
运动会班级前导词
2015/07/20 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL