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 相关文章推荐
jQuery阻止同类型事件小结
Apr 19 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
Dec 13 Javascript
JavaScript实现更改网页背景与字体颜色的方法
Feb 02 Javascript
js实现的早期滑动门菜单效果代码
Aug 27 Javascript
JS实现浏览器状态栏显示时间的方法
Oct 27 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
May 05 Javascript
javascript 小数乘法结果错误的处理方法
Jul 28 Javascript
JavaScript for循环 if判断语句(学习笔记)
Oct 11 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
Aug 31 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
Jan 31 Javascript
解决Vue router-link绑定事件不生效的问题
Jul 22 Javascript
js实现简单选项卡制作
Aug 05 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实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
JS刷新框架外页面七种实现代码
2013/02/18 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
2015/03/04 Javascript
javascript删除元素节点removeChild()用法实例
2015/05/26 Javascript
jQuery实现为图片添加镜头放大效果的方法
2015/06/25 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
javascript操作cookie
2017/01/17 Javascript
详解在Vue中如何使用axios跨域访问数据
2017/07/07 Javascript
Webpack优化配置缩小文件搜索范围
2017/12/25 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
Openlayers实现地图的基本操作
2020/09/28 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
python爬虫之自制英汉字典
2019/06/24 Python
关于python字符串方法分类详解
2019/08/20 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
英语自荐信常用语句
2013/12/13 职场文书
作文批改评语大全
2014/04/23 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
离职证明格式样本
2015/06/12 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
使用MybatisPlus打印sql语句
2022/04/22 SQL Server