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 web页面刷新的方法收集
Jul 02 Javascript
Javascript this指针
Jul 30 Javascript
jQuery的slideToggle方法实例
May 07 Javascript
深入理解javascript中return的作用
Dec 30 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
Nov 23 Javascript
JS显示表格内指定行html代码的方法
Mar 31 Javascript
js随机生成字母数字组合的字符串 随机动画数字
Sep 02 Javascript
Bootstrap轮播图学习使用
Feb 10 Javascript
JS实现含有中文字符串的友好截取功能分析
Mar 13 Javascript
js Dom实现换肤效果
Oct 21 Javascript
用jQuery将JavaScript对象转换为querystring查询字符串的方法
Nov 12 jQuery
你不知道的 TypeScript 高级类型(小结)
Aug 28 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/02 无线电
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
CI(CodeIgniter)框架视图中加载视图的方法
2017/03/24 PHP
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
2013/03/21 Javascript
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
Angular4学习笔记之准备和环境搭建项目
2017/08/01 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
通过nodejs 服务器读取HTML文件渲染到页面的方法
2018/05/17 NodeJs
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
python requests 使用快速入门
2017/08/31 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
Python中GeoJson和bokeh-1的使用讲解
2019/01/03 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
python 模拟登陆github的示例
2020/12/04 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
python解包用法详解
2021/02/17 Python
导出HTML5 Canvas图片并上传服务器功能
2019/08/16 HTML / CSS
会计电算化专业求职信
2014/06/10 职场文书
公司员工离职证明书
2014/10/04 职场文书
小学运动会加油稿
2015/07/22 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL