这篇文章主要介绍了javascript实现的字符串与十六进制表示字符串相互转换方法,涉及javascript字符串转换的相关技巧,在防止SQL注入和XSS中具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了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程序设计有所帮助。
新闻热点
疑难解答
图片精选