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 相关文章推荐
DOM下的节点属性和操作小结
May 14 Javascript
为调试JavaScript添加输出窗口的代码
Feb 07 Javascript
jQuery实现带渐显效果的人物多级关系图代码
Oct 16 Javascript
javascript事件绑定学习要点
Mar 09 Javascript
js正则表达式replace替换变量方法
May 21 Javascript
jQuery过滤选择器用法示例
Sep 12 Javascript
浅谈jQuery框架Ajax常用选项
Jul 08 jQuery
Vue cli3 库模式搭建组件库并发布到 npm的流程
Oct 12 Javascript
bootstrap Table实现合并相同行
Jul 19 Javascript
微信小程序HTTP接口请求封装代码实例
Sep 05 Javascript
vue中 数字相加为字串转化为数值的例子
Nov 07 Javascript
解决vue项目本地启动时无法携带cookie的问题
Feb 06 Vue.js
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
用Flash图形化数据(二)
2006/10/09 PHP
整合了前面的PHP数据库连接类~~做成一个分页类!
2006/11/25 PHP
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
PHP学习之整理字符串
2011/04/17 PHP
php中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
javascript 二维数组的实现与应用
2010/03/16 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
2012/04/07 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
vue.js实现只弹一次弹框
2018/01/29 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
Python设计模式之单例模式实例
2014/04/26 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
python使用folium库绘制地图点击框
2018/09/21 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
python 图像增强算法实现详解
2021/01/24 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
2015/04/24 HTML / CSS
卫生标语大全
2014/06/21 职场文书
师德师风的心得体会
2014/09/02 职场文书
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL