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 相关文章推荐
document对象execCommand的command参数介绍
Aug 01 Javascript
不错的一个日期输入 动态
Nov 06 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
Feb 24 Javascript
ECMAScript5(ES5)中bind方法使用小结
May 07 Javascript
jQuery的remove()方法使用详解
Aug 11 Javascript
js获取url传值的方法
Dec 18 Javascript
JavaScript的函数式编程基础指南
Mar 19 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
Jun 14 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
Dec 28 Javascript
工厂模式在JS中的实践
Jan 18 Javascript
js实现音频控制进度条功能
Apr 01 Javascript
Vue.use源码学习小结
Jun 20 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中批量修改文件后缀名的函数代码
2011/10/23 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
php算法实例分享
2015/07/14 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
2015/12/15 PHP
js的event详解。
2006/09/06 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
AngularJS入门教程之XHR和依赖注入详解
2016/08/18 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
实例讲解JavaScript预编译流程
2019/01/24 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
Python字符串替换实例分析
2015/05/11 Python
Python六大开源框架对比
2015/10/19 Python
Python3解决棋盘覆盖问题的方法示例
2017/12/07 Python
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
《与孩子一起学编程》python自测题
2018/05/27 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
pytorch中获取模型input/output shape实例
2019/12/30 Python
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
python 如何在测试中使用 Mock
2021/03/01 Python
门卫班长岗位职责
2013/12/15 职场文书
秋季运动会稿件
2014/01/30 职场文书
人口与计划生育目标管理责任书
2014/07/29 职场文书
党委书记群众路线对照检查材料思想汇报
2014/10/04 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
事业单位个人总结
2015/02/12 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
鲁冰花观后感
2015/06/10 职场文书
详解缓存穿透击穿雪崩解决方案
2021/05/28 Redis
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android