浅谈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 相关文章推荐
同一个表单 根据要求递交到不同页面的实现方法小结
Aug 05 Javascript
JavaScript代码复用模式实例分析
Dec 02 Javascript
jquery中的事件处理详细介绍
Jun 24 Javascript
jQuery阻止事件冒泡具体实现
Oct 11 Javascript
jQuery手机拨号界面特效代码分享
Aug 27 Javascript
JS+CSS实现精美的二级导航效果代码
Sep 17 Javascript
微信小程序  http请求封装详解及实例代码
Feb 15 Javascript
JavaScript中字符串的常用操作方法及特殊字符
Mar 18 Javascript
如何将百度地图包装成Vue的组件的方法步骤
Feb 12 Javascript
Vue computed 计算属性代码实例
Apr 22 Javascript
JS实现图片幻灯片效果代码实例
May 21 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
Jul 22 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
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
php的字符串用法小结
2010/06/08 PHP
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
PHP生成随机密码类分享
2014/06/25 PHP
PHP中数据库单例模式的实现代码分享
2014/08/21 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
Jquery实现瀑布流布局(备有详细注释)
2015/07/31 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
JS高级运动实例分析
2016/12/20 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
AngularJS $http模块POST请求实现
2017/04/08 Javascript
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
Python模块学习 filecmp 文件比较
2012/08/27 Python
python动态监控日志内容的示例
2014/02/16 Python
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
python安装本地whl的实例步骤
2019/10/12 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
2020/06/30 Python
Python图像读写方法对比
2020/11/16 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
平面设计岗位职责
2013/12/14 职场文书
庆八一活动方案
2014/01/25 职场文书
教师读书活动总结
2014/05/07 职场文书
农行心得体会
2014/09/02 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
中层干部考核评语
2015/01/04 职场文书
总经理岗位职责范本
2015/04/01 职场文书