浅谈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小测验(代码集合)
Jul 27 Javascript
jQuery Ajax调用WCF服务详细教程
Mar 31 Javascript
jQuery实现在列表的首行添加数据
May 19 Javascript
javascript常用正则表达式汇总
Jul 31 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
Dec 15 Javascript
微信小程序 登录的简单实现
Apr 19 Javascript
JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
May 26 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
Jul 03 Javascript
windows实现npm和cnpm安装步骤
Oct 24 Javascript
小程序新版订阅消息模板消息
Dec 31 Javascript
JavaScript监听一个DOM元素大小变化
Apr 26 Javascript
javascript的var与let,const之间的区别详解
Feb 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
CI框架给视图添加动态数据
2014/12/01 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
NodeJS http模块用法示例【创建web服务器/客户端】
2019/11/05 NodeJs
Openlayers实现图形绘制
2020/09/28 Javascript
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
在Python中处理字符串之isdecimal()方法的使用
2015/05/20 Python
Python3计算三角形的面积代码
2017/12/18 Python
基于Django与ajax之间的json传输方法
2018/05/29 Python
Python函数参数操作详解
2018/08/03 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
python 瀑布线指标编写实例
2020/06/03 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
手机配件第一品牌:ZAGG
2017/05/28 全球购物
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
js实现弹框效果
2021/03/24 Javascript
大学生优秀的自我评价分享
2013/10/22 职场文书
计算机应用与科学个人的自我评价
2013/11/15 职场文书
2014年度党员自我评议
2014/09/13 职场文书
员工培训协议书
2014/09/15 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL