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 相关文章推荐
css图片自适应大小
Nov 28 Javascript
Egret引擎开发指南之运行项目
Sep 03 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
Sep 17 Javascript
javascript 中__proto__和prototype详解
Nov 25 Javascript
node.js操作mongoDB数据库示例分享
Nov 26 Javascript
node.js中的http.response.removeHeader方法使用说明
Dec 14 Javascript
javascript实现可键盘控制的抽奖系统
Mar 10 Javascript
JQuery validate插件验证用户注册信息
May 11 Javascript
学习Bootstrap滚动监听 附调用方法
Jul 02 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
Jan 19 Javascript
基于JavaScript实现弹幕特效
Aug 27 Javascript
vue组件的写法汇总
Apr 12 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
Linux编译升级php的详细方法
2013/11/04 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
详解php框架Yaf路由重写
2017/06/20 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
jQuery live
2009/05/15 Javascript
javascript中的一些注意事项 更新中
2010/12/06 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
js实现登录验证码
2016/12/22 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
收集前端面试题之url、href、src
2018/03/22 Javascript
解决vue attr取不到属性值的问题
2018/09/18 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
2018/09/19 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
js 函数性能比较方法
2020/08/24 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
《夜晚的实验》教学反思
2014/02/19 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
主要领导对照检查材料
2014/08/26 职场文书
2014年生产部工作总结
2014/12/17 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
颐和园的导游词
2015/01/30 职场文书
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript
MySQL 字符集 character
2022/05/04 MySQL