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 相关文章推荐
表格单元格交错着色实现思路及代码
Apr 01 Javascript
jquery对象和DOM对象的区别介绍
Aug 09 Javascript
JavaScript检查某个function是否是原生代码的方法
Aug 20 Javascript
jQuery标签编辑插件Tagit使用指南
Apr 21 Javascript
Javascript监视变量变化的方法
Jun 09 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
Dec 13 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
Jul 27 Javascript
Bootstrap CSS布局之按钮
Dec 17 Javascript
Javascript中document.referrer隐藏来源的方法
Jan 16 Javascript
vue router仿天猫底部导航栏功能
Oct 18 Javascript
jQuery阻止事件冒泡实例分析
Jul 03 jQuery
在HTML5 localStorage中存储对象的示例代码
Apr 21 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
当海贼王变成JOJO风
2020/03/02 日漫
PHP图片处理类 phpThumb参数用法介绍
2012/03/11 PHP
php文件上传 你真的掌握了吗
2016/11/28 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
2013/06/21 Javascript
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
最实用的JS数组函数整理
2017/12/05 Javascript
Angular刷新当前页面的实现方法
2018/11/21 Javascript
Python的类实例属性访问规则探讨
2015/01/30 Python
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
Python温度转换实例分析
2018/01/17 Python
Python subprocess模块常见用法分析
2018/06/12 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
python 制作网站筛选工具(附源码)
2021/01/21 Python
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
Linux内核产生并发的原因
2012/07/13 面试题
商务英语本科生的自我评价分享
2013/11/15 职场文书
水利公司纪检监察自我鉴定
2014/02/25 职场文书
课堂教学改革实施方案
2014/03/17 职场文书
反腐倡廉标语
2014/06/24 职场文书
毕业生实习证明
2014/09/19 职场文书
学习退步检讨书
2014/09/28 职场文书
2015年端午节活动总结
2015/02/11 职场文书
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技