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 相关文章推荐
关于实现代码语法标亮 dp.SyntaxHighlighter
Feb 02 Javascript
js 数组的for循环到底应该怎么写?
May 31 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
Jul 10 Javascript
javascript中的作用域和上下文使用简要概述
Dec 05 Javascript
JQuery表单验证插件EasyValidator用法分析
Nov 15 Javascript
JS选项卡动态替换banner图片路径的方法
May 11 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
Nov 04 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
Aug 08 Javascript
jQuery简单实现根据日期计算星期几的方法
Jan 09 jQuery
vue中使用v-model完成组件间的通信
Aug 22 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
Apr 01 Javascript
解决vue组件销毁之后计时器继续执行的问题
Jul 21 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
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
安装APACHE
2007/01/15 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
thinkphp配置连接数据库技巧
2014/12/02 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
2016/07/14 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
2019/10/03 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
js利用prototype调用Array的slice方法示例
2014/06/09 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
详解JavaScript的回调函数
2015/11/20 Javascript
Vue.js动态添加、删除选题的实例代码
2016/09/30 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
python实现八大排序算法(2)
2017/09/14 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
银行自荐信范文
2013/10/07 职场文书
学生实习自我鉴定
2013/10/11 职场文书
药物学专业学生的自我评价
2013/10/27 职场文书
土木工程专业推荐信
2014/02/19 职场文书
2019年消防宣传标语集锦
2019/11/21 职场文书
Django cookie和session的应用场景及如何使用
2021/04/29 Python
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis