浅谈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入门问答 整理的几个常见的初学者问题
Feb 22 Javascript
解析John Resig Simple JavaScript Inheritance代码
Dec 03 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
Apr 12 Javascript
解析javascript系统错误:-1072896658的解决办法
Jul 08 Javascript
了不起的node.js读书笔记之node的学习总结
Dec 22 Javascript
浅谈javascript中replace()方法
Nov 10 Javascript
一种新的javascript对象创建方式Object.create()
Dec 28 Javascript
JavaScript动态数量的文件上传控件
Nov 18 Javascript
微信公众号菜单配置微信小程序实例详解
Mar 31 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
May 17 Javascript
纯JS实现只能输入数字的简单代码
Jun 21 Javascript
vue中的自定义分页插件组件的示例
Aug 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
php REMOTE_ADDR之获取访客IP的代码
2008/04/22 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
php文件操作相关类实例
2015/06/18 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
深入理解PHP中的count函数
2016/05/31 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
PHP将字符串首字母大小写转换的实例
2017/01/21 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
JS动态的把左边列表添加到右边的实现代码(可上下移动)
2016/11/17 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
VueJS事件处理器v-on的使用方法
2017/09/27 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
解决Django连接db遇到的问题
2019/08/29 Python
如何通过python实现人脸识别验证
2020/01/17 Python
opencv python图像梯度实例详解
2020/02/04 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
html5手机端页面可以向右滑动导致样式受影响的问题
2018/06/20 HTML / CSS
国贸专业的职业规划范文
2014/01/23 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
岗位聘任书范文
2014/03/29 职场文书
十八大演讲稿
2014/05/22 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
公司离职证明标准范本
2014/10/05 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
基于Python实现对比Exce的工具
2022/04/07 Python