浅谈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在IE下设置innerHTML时出现未知的运行时错误的解决方法
Jan 12 Javascript
Javascript实现的类似Google的Div拖动效果代码
Aug 09 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
Jan 03 Javascript
用js实现小球的自由移动代码
Apr 22 Javascript
js获取控件位置以及不同浏览器中的差别介绍
Aug 08 Javascript
js跨域问题浅析及解决方法优缺点对比
Nov 08 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
Jan 24 Javascript
vue轮播图插件vue-concise-slider的使用
Mar 13 Javascript
垃圾回收器的相关知识点总结
May 13 Javascript
js仿360开机效果
Dec 26 Javascript
ES6扩展运算符和rest运算符用法实例分析
May 23 Javascript
原生JS实现相邻月份日历
Oct 13 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_Flame(Version:Progress)的原代码
2006/10/09 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
php实现小程序支付完整版
2018/10/09 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
基于Vuejs框架实现翻页组件
2020/06/29 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
小程序实现展开/收起的效果示例
2018/09/22 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
pyqt和pyside开发图形化界面
2014/01/22 Python
python使用Berkeley DB数据库实例
2014/09/26 Python
Python操作MongoDB详解及实例
2017/05/18 Python
python使用opencv读取图片的实例
2017/08/17 Python
python正则实现计算器功能
2017/12/14 Python
python实现图书馆研习室自动预约功能
2018/04/27 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
初中生三年学习生活的自我评价
2013/11/03 职场文书
员工工作表扬信范文
2014/01/13 职场文书
工作表现评语
2014/01/19 职场文书
学习决心书
2014/03/11 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
2015入党自传格式范文
2015/06/26 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
Python Django模型详解
2021/10/05 Python