浅谈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 相关文章推荐
Jquery 表单取值赋值的一些基本操作
Oct 11 Javascript
jquery动画3.创建一个带遮罩效果的图片走廊
Aug 24 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
Feb 05 Javascript
JavaScript实现Iterator模式实例分析
Jun 09 Javascript
AngularJS ng-blur 指令详解及简单实例
Jul 30 Javascript
BootStrap入门教程(三)之响应式原理
Sep 19 Javascript
jquery PrintArea 实现票据的套打功能(代码)
Mar 17 Javascript
vue.js在标签属性中插入变量参数的方法
Mar 06 Javascript
setTimeout时间设置为0详细解析
Mar 13 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
Oct 29 Javascript
微信小程序swiper禁止用户手动滑动代码实例
Aug 23 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
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
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
php的laravel框架快速集成微信登录的方法
2016/12/12 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
你必须知道的Javascript知识点之&quot;单线程事件驱动&quot;的使用
2013/04/23 Javascript
JS+css 图片自动缩放自适应大小
2013/08/08 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
2015/03/18 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
最基础的vue.js双向绑定操作
2017/08/23 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
JS实现吸顶特效
2020/01/08 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
[23:21]Ti4 冒泡赛第二轮DK vs C9 2
2014/07/14 DOTA
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
Python 基础教程之包和类的用法
2017/02/23 Python
简单了解python模块概念
2018/01/11 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
Python venv虚拟环境配置过程解析
2020/07/08 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
CK美国官网:Calvin Klein
2016/08/26 全球购物
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
财务会计专业推荐信
2013/11/30 职场文书
医学生就业推荐表自我鉴定
2014/03/26 职场文书
物理课外活动总结
2014/08/27 职场文书
狮子林导游词
2015/02/03 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
创业计划书之美甲店
2019/09/20 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP
python可视化之颜色映射详解
2021/09/15 Python