浅谈Javascript Base64 加密解密


Posted in Javascript onDecember 28, 2014

html代码:

 <!DOCTYPE html>

 <html>

 <head>

     <title>Page Title</title>

     <style type="text/css">

     *{font-family: Consolas;font-style: italic}

     .responsebox{width:900px;margin:10px auto;padding:10px;border:2px solid #366;border-radius: 10px 0 10px 0; text-align: center}

     .responsebox input,.responsebox button{font-size: 30px;margin:5px;padding:5px;}

     .spansuper{vertical-align: super;font-size: 14px}

     .spanbottom{vertical-align: text-bottom;font-size: 12px;margin-left: -110px}

     #showbox{width:900px;height:430px;border:5px solid #663;border-radius: 0 20px 0 20px;margin:10px auto;padding:8px;font-size: 20px}

     </style>

 </head>

 <body>

 <div class="responsebox">

     <h1>Javascript Base64 Encode & Decode<span class="spansuper">veinyf@gmail.com</span><span class="spanbottom">2014-12-27 17:44</span></h1>

     <input type="text" id="input">

     <input type="checkbox" id="checkbox" checked="checked">Base64</input>

     <button id="btn">Convert done !</button>

 </div>

 <div id="showbox"></div>

 </body>

 <script type="text/javascript">

     /*javascript知识:

      *函数:window.atob()    window.btoa()   unescape() escape() encodeURIComponent() decodeURIComponent()

      *正则表达式清除首位空格:_string.replace(/(^\s*)|(\s*$)/g,"");

      *

      *CovertBase64orString自执行函数

      *inputid   输入框id

      *checkboxid    选择框id

      *btnid 按钮id

      *showid    html显示容器id,这里是一个div#showbox

      */

 (function CovertBase64orString(inputid, checkboxid, btnid, showid) {

     var checkbox = document.getElementById(checkboxid); //html dom select checkbox

     var chkvalue = checkbox.getAttribute("checked");    //html dom select checkedvalue

     var btn = document.getElementById(btnid);           //html dom select button id

     var isbase64;                                       //base64toString or StringtoBase64 bool

     var returnval = null;                               //Converted string

     chkvalue == "checked" ? isbase64 = true : isbase64 = false; //判断check按钮初始化状态 赋值isbase64

     checkbox.addEventListener("click", function(e) {            //checkbox 点击事件注册

         var _ckvak = checkbox.getAttribute("checked");          //点击事件发生时,改变check状态,赋值isbase64

         if (_ckvak == "checked") {

             checkbox.setAttribute("checked", null);

             isbase64 = false;

         } else {

             checkbox.setAttribute("checked", "checked");

             isbase64 = true;

         }

     }, true);

     btn.addEventListener("click", function(e) {                    //button 点击事件注册

         var _show = document.getElementById(showid);               //html dom select showbox id

         var _inputvalue = document.getElementById(inputid).value;   //文本框取值

         //_inputvalue=_inputvalue.replace(/(^\s*)|(\s*$)/g, "");    //正则表达式去除首位空格,似乎btoa,abob已经做了这些工作

         var _showlength = _show.childNodes.length;                  //遍历showbox,清除showbox内容

         while (_showlength > 0) {

             _show.removeChild(_show.childNodes[_showlength - 1]);

             _showlength--;

         }

         if (isbase64) {  //string to base64,支持中文编码,unescape,encodeURIComponent

             returnval = window.btoa(unescape(encodeURIComponent(_inputvalue)));

         } else {        //base64 to string

             returnval = decodeURIComponent(escape(window.atob(_inputvalue)));

         }

         _show.appendChild(document.createTextNode(returnval));          //add context to showbox

     }, true);

 })("input", "checkbox", "btn","showbox");

 //CovertBase64orString("input", "checkbox", "btn","showbox");

 </script>

 </html>

效果:

浅谈Javascript Base64 加密解密

推荐一个Javascript IDE 比Aptana还好用。Komodo IDE(免费版:Komodo Edit,基本功能一样)支持语法高亮,智能感知,还支持perl,python,ruby,nodejs语法等。

浅谈Javascript Base64 加密解密

Javascript 相关文章推荐
JavaScript 设计模式之组合模式解析
Apr 09 Javascript
ajax请求get与post的区别总结
Nov 04 Javascript
微信小程序 保留小数(toFixed)详细介绍
Nov 16 Javascript
javaScript封装的各种写法
Aug 14 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
Dec 27 Javascript
vue中如何去掉空格的方法实现
Nov 09 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
May 30 jQuery
vue+element加入签名效果(移动端可用)
Jun 17 Javascript
jquery实现垂直无限轮播的方法分析
Jul 16 jQuery
五分钟搞懂Vuex实用知识(小结)
Aug 12 Javascript
深入理解 TypeScript Reflect Metadata
Dec 12 Javascript
JS中一些高效的魔法运算符总结
May 06 Javascript
JavaScript设计模式之代理模式介绍
Dec 28 #Javascript
JavaScript设计模式之外观模式介绍
Dec 28 #Javascript
JavaScript阻止事件冒泡示例分享
Dec 28 #Javascript
jQuery中removeData()方法用法实例
Dec 27 #Javascript
jQuery中data()方法用法实例
Dec 27 #Javascript
jQuery中index()方法用法实例
Dec 27 #Javascript
jQuery中get()方法用法实例
Dec 27 #Javascript
You might like
基于PHP文件操作的详细诠释
2013/06/21 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
js 解决“options为空或不是对象”
2008/12/22 Javascript
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
js动态创建上传表单通过iframe模拟Ajax实现无刷新
2014/02/20 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
2015/11/03 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
JavaScript实现短信倒计时60s
2017/10/09 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
微信小程序实现星级评价
2019/11/20 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
[01:34]DAC2018主赛事第四日五佳镜头 Gh巨牙海民助Miracle-死里逃生
2018/04/07 DOTA
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
python matplotlib画图实例代码分享
2017/12/27 Python
基于django channel实现websocket的聊天室的方法示例
2019/04/11 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
德国大型箱包和皮具商店:Koffer
2019/10/01 全球购物
英国最大的独立摄影零售商:Park Cameras
2019/11/27 全球购物
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
大学生职业生涯规划书范文
2014/01/04 职场文书
社区平安建设方案
2014/05/25 职场文书
优秀班主任申报材料
2014/12/16 职场文书
总结几个非常实用的Python库
2021/06/26 Python
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python