A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 编程开发 > 网站开发 > javascript实现的字符串与十六进制表示字符串相互转换方法

javascript实现的字符串与十六进制表示字符串相互转换方法

时间:2015-07-17 17:03作者:fang人气:31

本文实例讲述了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,实现,字符串,十六进制,表示,相互,转

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号