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 自动转到命名锚记
Jan 10 Javascript
document.onreadystatechange事件的用法分析
Oct 17 Javascript
JavaScript中的View-Model使用介绍
Aug 11 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
Jan 17 Javascript
js导入导出excel(实例代码)
Nov 25 Javascript
jquery滚动加载数据的方法
Mar 09 Javascript
为什么我们要做三份 Webpack 配置文件
Sep 18 Javascript
JS实现登录页密码的显示和隐藏功能
Dec 06 Javascript
js canvas实现画图、滤镜效果
Nov 27 Javascript
webpack 处理CSS资源的实现
Sep 27 Javascript
JavaScript原型式继承实现方法
Nov 06 Javascript
vue和小程序项目中使用iconfont的方法
May 19 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解析字符串里所有URL地址的方法
2015/04/03 PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
2017/08/17 PHP
Yii框架安装简明教程
2020/05/15 PHP
js弹出层之1:JQuery.Boxy (二)
2011/10/06 Javascript
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
JQuery动态添加和删除表格行的方法
2015/03/09 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
vue2单元测试环境搭建
2018/05/24 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
element-ui 本地化使用教程详解
2019/10/28 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
python简单文本处理的方法
2015/07/10 Python
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
Python操作Jira库常用方法解析
2020/04/10 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
Python 必须了解的5种高级特征
2020/09/10 Python
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
高三语文教学反思
2014/01/15 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
粗加工管理制度
2014/02/04 职场文书
董事长助理岗位职责
2014/02/18 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
施工安全责任书范本
2014/07/24 职场文书
2014年超市工作总结
2014/11/19 职场文书
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python