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 27 Javascript
javascript学习笔记(三) String 字符串类型介绍
Jun 19 Javascript
Jquery动态进行图片缩略的原理及实现
Aug 13 Javascript
Jquery遍历节点的方法小集
Jan 22 Javascript
快速学习jQuery插件 Form表单插件使用方法
Dec 01 Javascript
js判断移动端是否安装某款app的多种方法
Dec 18 Javascript
Vue.js动态组件解析
Sep 09 Javascript
JS中验证整数和小数的正则表达式
Oct 08 Javascript
使用canvas实现一个vue弹幕组件功能
Nov 30 Javascript
webpack file-loader和url-loader的区别
Jan 15 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
May 12 Javascript
BootstrapValidator验证用户名已存在(ajax)
Nov 08 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
如何选购合适的收音机
2021/03/01 无线电
PHP新手上路(三)
2006/10/09 PHP
PHP中strtotime函数使用方法分享
2012/01/10 PHP
PHP获取文件的MD5值并判断是否被修改的例子
2014/06/19 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
javascript学习之闭包分析
2010/12/02 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
JavaScript动态插入script的基本思路及实现函数
2013/11/11 Javascript
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
2019/11/07 Javascript
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
Python 字典(Dictionary)操作详解
2014/03/11 Python
python实现apahce网站日志分析示例
2014/04/02 Python
Python中处理unchecked未捕获异常实例
2015/01/17 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
2017/06/21 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
英国著名的小众美容品牌网站:Alyaka
2017/08/08 全球购物
英语求职信范文
2014/05/23 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
车辆委托书范本
2014/10/05 职场文书
2015年实习单位评语
2015/03/25 职场文书
介绍信范文大全
2015/05/07 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
2019年销售部季度工作计划3篇
2019/10/09 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android