浅谈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 vvorld 在线加密破解方法
Nov 13 Javascript
基于Jquery的仿照flash放大图片效果代码
Mar 16 Javascript
jquery隐藏标签和显示标签的实例
Nov 11 Javascript
JS获取select-option-text_value的方法
Dec 26 Javascript
js动态控制table的tr、td增加及删除的具体实现
Apr 30 Javascript
浅谈javascript的调试
Jan 28 Javascript
JavaScript实现Java中StringBuffer的方法
Feb 09 Javascript
基于javascript实现tab切换特效
Mar 29 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
Jun 17 Javascript
如何在Angular2中使用jQuery及其插件的方法
Feb 09 Javascript
Vue组件之全局组件与局部组件的使用详解
Oct 09 Javascript
js中复选框的取值及赋值示例详解
Oct 18 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
ThinkPHP写第一个模块应用
2012/02/20 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
如何使用jquery修改css中带有!important的样式属性
2016/04/28 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
浅谈Vue SSR 的 Cookies 问题
2017/11/20 Javascript
微信小程序之swiper轮播图中的图片自适应高度的方法
2018/04/23 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
Vue中key的作用示例代码详解
2020/06/10 Javascript
pygame学习笔记(4):声音控制
2015/04/15 Python
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
python pandas修改列属性的方法详解
2018/06/09 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
python线程安全及多进程多线程实现方法详解
2019/09/27 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
一道Delphi上机题
2012/06/04 面试题
历史学专业毕业生求职信
2013/09/27 职场文书
体育教学随笔感言
2014/02/24 职场文书
家长会学生演讲稿
2014/04/26 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书
实习报告怎么写
2019/06/20 职场文书
nginx常用配置conf的示例代码详解
2022/03/21 Servers