javascript实现的字符串与十六进制表示字符串相互转换方法


Posted in Javascript onJuly 17, 2015

本文实例讲述了javascript实现的字符串与十六进制表示字符串相互转换方法。分享给大家供大家参考。具体如下:

之所以写这个,是因为发现SQL注入和XSS中经常利用十六进制表示的字符串,比如
SELECT CONCAT(0x68656c6c6f);
得到的是hello

<!DOCTYPE html>
<html>
 <head>
  <title>Hex-Char Bi-Converter</title>
 </head>
 <body>
  <div class="mainContainer">
   <label for="from" id="fromLabel">String</label>
   <input type="text" name="from" id="from" />
   <input type="button" name="exchange" id="exchange" value="<=>" />
   <label for="to" id="toLabel">Hex</label>
   <input type="text" name="to" id="to" />
   <input type="button" name="convert" id="convert" value="Convert" />
  </div>
  <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
  <script type="text/javascript">
   var curMode = 0; // curMode: 0 represents String to Hex, 1 from Hex to String
   var fromToLabelArray = ["Hex", "String"];
   $(function() {
    $("#convert").click(function() {
     var fromVal = $("#from").val();
     var toVal = 
      curMode === 0 
      ? 
      strToHexCharCode(fromVal) 
      :
      hexCharCodeToStr(fromVal);
     $("#to").val(toVal);
    });
    $("#exchange").click(function() {
     $("#fromLabel").text(fromToLabelArray[curMode]);
     $("#toLabel").text(fromToLabelArray[1-curMode]);
     curMode = 1 - curMode;
    });
   });
   function strToHexCharCode(str) {
    if(str === "")
     return "";
    var hexCharCode = [];
    hexCharCode.push("0x");    
    for(var i = 0; i < str.length; i++) {
     hexCharCode.push((str.charCodeAt(i)).toString(16));
    }
    return hexCharCode.join("");
   }
   function hexCharCodeToStr(hexCharCodeStr) {
    var trimedStr = hexCharCodeStr.trim();
    var rawStr = 
      trimedStr.substr(0,2).toLowerCase() === "0x"
      ? 
      trimedStr.substr(2) 
      : 
      trimedStr;
    var len = rawStr.length;
    if(len % 2 !== 0) {
     alert("Illegal Format ASCII Code!");
        return "";
    }
    var curCharCode;
    var resultStr = [];
    for(var i = 0; i < len;i = i + 2) {
     curCharCode = parseInt(rawStr.substr(i, 2), 16); // ASCII Code Value
     resultStr.push(String.fromCharCode(curCharCode));
    }
    return resultStr.join("");
   }
  </script>
 </body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
javascript iframe内的函数调用实现方法
Jul 19 Javascript
你必须知道的Javascript知识点之&quot;单线程事件驱动&quot;的使用
Apr 23 Javascript
jquery获取子节点和父节点的示例代码
Sep 10 Javascript
js/jQuery简单实现选项卡功能
Jan 02 Javascript
JavaScript也谈内存优化
Jun 06 Javascript
jquery实现页面关键词高亮显示的方法
Mar 12 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
Jun 05 Javascript
跟我学习javascript创建对象(类)的8种方法
Nov 20 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
Jun 02 Javascript
浅谈react受控组件与非受控组件(小结)
Feb 09 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
May 28 Javascript
JavaScript实现基于十进制的四舍五入实例
Jul 17 #Javascript
JavaScript之AOP编程实例
Jul 17 #Javascript
js+html5实现可在手机上玩的拼图游戏
Jul 17 #Javascript
javascript封装的sqlite操作类实例
Jul 17 #Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
Jul 17 #Javascript
javascript实现根据3原色制作颜色选择器的方法
Jul 17 #Javascript
javascript实现树形菜单的方法
Jul 17 #Javascript
You might like
PHP完整的日历类(CLASS)
2006/11/27 PHP
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
用PHP获取Google AJAX Search API 数据的代码
2010/03/12 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
使用JQuery在线制作ppt并在线演示源码特效
2015/09/08 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
vue elementui form表单验证的实现
2018/11/11 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
2019/03/14 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
详解React 元素渲染
2020/07/07 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
使用python编写一个语音朗读闹钟功能的示例代码
2020/07/14 Python
解决python对齐错误的方法
2020/07/16 Python
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
行政办公员自我评价分享
2013/12/14 职场文书
一名老师的自我评价
2014/02/07 职场文书
2014年五四青年节活动策划书
2014/04/22 职场文书