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 放大镜 移动镜片效果代码
May 09 Javascript
用Javascript实现Windows任务管理器的代码
Mar 27 Javascript
JavaScript中的Function函数
Aug 27 Javascript
基于jQuery实现复选框是否选中进行答题提示
Dec 10 Javascript
理解Javascript文件动态加载
Jan 29 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
Jul 20 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
Jul 22 Javascript
轻松实现jquery选项卡切换效果
Oct 10 Javascript
jQuery dateRangePicker插件使用方法详解
Jul 28 jQuery
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 jQuery
vue 双向数据绑定的实现学习之监听器的实现方法
Nov 30 Javascript
vue组件添加事件@click.native操作
Oct 30 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 Rename 更改文件、文件夹名称
2011/05/24 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
JS 删除字符串最后一个字符的实现代码
2014/02/20 Javascript
跟我学习javascript的prototype原型和原型链
2015/11/18 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
2016/07/09 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
深入理解(function(){... })();
2016/08/16 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
JS实现碰撞检测效果
2020/03/12 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
使用Python多线程爬虫爬取电影天堂资源
2016/09/23 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
Sanic框架流式传输操作示例
2018/07/18 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
python 实现return返回多个值
2019/11/19 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
化工见习报告范文
2014/10/31 职场文书
出国留学导师推荐信
2015/03/26 职场文书
2015学校图书管理员工作总结
2015/05/11 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
python 下载文件的几种方式分享
2021/04/07 Python
python 算法题——快乐数的多种解法
2021/05/27 Python
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js
用Python生成会跳舞的美女
2022/01/18 Python
Go语言安装并操作redis的go-redis库
2022/04/14 Golang