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 相关文章推荐
取选中的radio的值
Jan 11 Javascript
jquery序列化表单去除指定元素示例代码
Apr 10 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
Mar 02 Javascript
利用JQuery写一个简单的异步分页插件
Mar 07 Javascript
基于JS实现的笛卡尔乘积之商品发布
May 13 Javascript
jQuery中的100个技巧汇总
Dec 15 Javascript
半个小时学json(json传递示例)
Dec 25 Javascript
javascript实现二叉树的代码
Jun 08 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
Jun 12 jQuery
使用vue重构资讯页面的实例代码解析
Nov 26 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
Nov 09 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
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
php使用base64加密解密图片示例分享
2014/01/20 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
js仿百度贴吧验证码特效实例代码
2014/01/16 Javascript
js实现的捐赠管理完整实例
2015/01/20 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
python编辑用户登入界面的实现代码
2018/07/16 Python
python遍历小写英文字母的方法
2019/01/02 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
python实现日志按天分割
2019/07/22 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2016/01/06 面试题
党校个人自我鉴定范文
2014/03/28 职场文书
个人工作表现评语
2014/04/30 职场文书
步步惊心观后感
2015/06/12 职场文书
大学生暑假实习总结
2015/07/13 职场文书
基督教追悼会答谢词
2015/09/29 职场文书
反邪教学习心得体会
2016/01/15 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书
Python基础知识学习之类的继承
2021/05/31 Python
详解Python中的进程和线程
2021/06/23 Python
python字典进行运算原理及实例分享
2021/08/02 Python
Python办公自动化PPT批量转换操作
2021/09/15 Python