浅谈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 相关文章推荐
鼠标拖拽移动子窗体的JS实现
Feb 25 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
Nov 17 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
Nov 09 Javascript
angular+ionic 的app上拉加载更新数据实现方法
Jan 16 Javascript
微信小程序 scroll-view隐藏滚动条详解
Jan 16 Javascript
前端编码规范(3)JavaScript 开发规范
Jan 21 Javascript
react-router实现按需加载
May 09 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
Jan 12 Javascript
Vue.js中的组件系统
May 30 Javascript
vue组件三大核心概念图文详解
May 30 Javascript
vue + typescript + 极验登录验证的实现方法
Jun 27 Javascript
通过GASP让vue实现动态效果实例代码详解
Nov 24 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版微信公众平台红包API
2015/04/02 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
LBS blog sql注射漏洞[All version]-官方已有补丁
2007/08/26 Javascript
Javascript学习笔记2 函数
2010/01/11 Javascript
Jquery中使用setInterval和setTimeout的方法
2013/04/08 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
python基础教程之数字处理(math)模块详解
2014/03/25 Python
Python删除n行后的其他行方法
2019/01/28 Python
pytorch 预训练层的使用方法
2019/08/20 Python
python日志模块logbook使用方法
2019/09/19 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
Python关于反射的实例代码分享
2020/02/20 Python
django实现日志按日期分割
2020/05/21 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
2020/06/10 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
毕业自我评价范文
2013/11/17 职场文书
园林施工员岗位职责
2013/12/11 职场文书
研究生导师推荐信
2014/09/06 职场文书
2014年导购员工作总结
2014/11/18 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
总结Python变量的相关知识
2021/06/28 Python
浅谈Java父子类加载顺序
2021/08/04 Java/Android
MySQL慢查询优化解决问题
2022/03/17 MySQL
java.util.NoSuchElementException原因及两种解决方法
2022/06/28 Java/Android
JS实现简单九宫格抽奖
2022/06/28 Javascript