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把表单元素变为json对象
Nov 06 Javascript
js简单的弹出框有关闭按钮
May 05 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
Sep 10 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
Sep 21 Javascript
浅析JavaScript中的事件机制
Jun 04 Javascript
jquery控制页面部分刷新的方法
Jun 24 Javascript
jQuery实现的背景动态变化导航菜单效果
Aug 24 Javascript
详解js中构造流程图的核心技术JsPlumb
Dec 08 Javascript
Vue方法与事件处理器详解
Dec 01 Javascript
node.js中grunt和gulp的区别详解
Jul 17 Javascript
JavaScript实现职责链模式概述
Jan 25 Javascript
js布局实现单选按钮控件
Jan 17 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
使用无限生命期Session的方法
2006/10/09 PHP
那些年一起学习的PHP(一)
2012/03/21 PHP
php输出1000以内质数(素数)示例
2014/02/16 PHP
php类声明和php类使用方法示例分享
2014/03/29 PHP
php获取url参数方法总结
2014/11/13 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
jQuery中:focus选择器用法实例
2014/12/30 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
[08:40]Navi Vs Newbee
2018/06/07 DOTA
python optparse模块使用实例
2015/04/09 Python
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
Python中文竖排显示的方法
2015/07/28 Python
python 读写中文json的实例详解
2017/10/29 Python
Django-Rest-Framework 权限管理源码浅析(小结)
2018/11/12 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
详解python的super()的作用和原理
2020/10/29 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
python中Pexpect的工作流程实例讲解
2021/03/02 Python
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
幼儿园消防演练方案
2014/02/13 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
静心口服夜广告词
2014/03/20 职场文书
党员公开承诺事项
2014/03/25 职场文书
求职自我推荐信
2014/06/25 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
nginx静态资源的服务器配置方法
2022/07/07 Servers