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 相关文章推荐
如何在一个页面显示多个百度地图
Apr 07 Javascript
javascript分页代码实例分享(js分页)
Dec 13 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
Dec 02 Javascript
jQuery实现三级菜单的代码
May 09 Javascript
使用jQuery和ajax代替iframe的方法(详解)
Apr 12 jQuery
vue2.x+webpack快速搭建前端项目框架详解
Nov 30 Javascript
js实时监控文本框输入字数的实例代码
Jan 18 Javascript
用JS实现一个简单的打砖块游戏
Dec 11 Javascript
vue-cli设置publicPath小记
Apr 14 Javascript
react实现复选框全选和反选组件效果
Aug 25 Javascript
Vue3 响应式侦听与计算的实现
Nov 11 Javascript
canvas实现贪食蛇的实践
Feb 15 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
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
php获取微信基础接口凭证Access_token
2018/08/23 PHP
几款极品的javascript压缩混淆工具
2007/05/16 Javascript
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
2013/08/28 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
浅谈Node.js 沙箱环境
2018/05/15 Javascript
JS实现前端页面的搜索功能
2018/06/12 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
[01:32]2014DOTA2西雅图邀请赛 CIS我们有信心进入正赛
2014/07/08 DOTA
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
django的csrf实现过程详解
2019/07/26 Python
pygame实现五子棋游戏
2019/10/29 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
Html5页面二次分享的实现
2018/07/30 HTML / CSS
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
小学教师学期末自我评价
2013/09/25 职场文书
企业金融服务方案
2014/06/03 职场文书
学校学雷锋活动总结
2014/06/26 职场文书
个人合伙协议书范本
2014/10/14 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
泰山导游词
2015/02/02 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
python实现进度条的多种实现
2021/04/29 Python