javascript实现的字符串与十六进制表示字符串相互转换方法
更新时间:2015年07月17日 14:58:28 作者:优雅先生
这篇文章主要介绍了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程序设计有所帮助。
相关文章
uniapp开发安卓App实现高德地图路线规划导航功能的全过程
最近项目需要在APP内实现路线规划导航功能,直接打开高德地图进行导航,下面这篇文章主要给大家介绍了关于利用uniapp开发安卓App实现高德地图路线规划导航功能的相关资料,需要的朋友可以参考下2022-08-08仅IE不支持setTimeout/setInterval函数的第三个以上参数
setTimeout/setInterval,这两个函数相信前端开发同学都很熟悉。它们在非IE(6-9)浏览器中还可以如下使用2011-05-05JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)。需要的朋友可以过来参考下,希望对大家有所帮助2013-11-11
最新评论