浅谈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的版本实现执行不同的代码
May 11 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
May 24 Javascript
js给onclick事件赋值,动态传参数实例解说
Mar 28 Javascript
javascript解析json数据的3种方式
May 08 Javascript
JavaScript中的call方法和apply方法使用对比
Aug 12 Javascript
jquery实现顶部向右伸缩的导航区域代码
Sep 02 Javascript
深入理解JavaScript中Ajax
Aug 02 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
Jan 11 Javascript
vue2.0 中使用transition实现动画效果使用心得
Aug 13 Javascript
JavaScript实现拖动对话框效果的实现代码
Oct 12 Javascript
vscode+gulp轻松开发小程序的完整步骤
Oct 18 Javascript
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 Vue.js
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变量引用的面试题
2010/08/08 PHP
PHP备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
JS Range HTML文档/文字内容选中、库及应用介绍
2011/05/12 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
JS实现仿QQ效果的三级竖向菜单
2015/09/25 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
使用Python生成随机密码的示例分享
2016/02/18 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
银行领导证婚词
2014/01/11 职场文书
抵押贷款承诺书
2014/05/30 职场文书
服装设计专业求职信
2014/06/16 职场文书
教师个人师德总结
2015/02/06 职场文书
解决numpy和torch数据类型转化的问题
2021/05/23 Python
Pytorch distributed 多卡并行载入模型操作
2021/06/05 Python
pycharm代码删除恢复的方法
2021/06/26 Python
Python 多线程处理任务实例
2021/11/07 Python
Linux磁盘管理方法介绍
2022/06/01 Servers