首先我们要加密的明文是:
$test=<<<'EVE' echo '<script>alert("nihao")</script>';die; EVE;
字符串转16进制,16进制还原的方法
function String2Hex($string){ $hex=''; for ($i=0; $i < strlen($string); $i++){ $hex .= dechex(ord($string[$i])); } return $hex; } function Hex2String($hex){ $string=''; for ($i=0; $i < strlen($hex)-1; $i+=2){ $string .= chr(hexdec($hex[$i].$hex[$i+1])); } return $string; }
加密:
$test1= gzdeflate($test); #压缩 $test1=base64_encode($test1); #base64编码 $adam=String2Hex(str_rot13($test1)); #选rot13转换 在转换成16进制
加密后的字符串:
463033426c537144676c794259666266585953596d527867586753446c66695a465a6b4b30654745756a64654a367178637962514e4e3d3d
解密:
$ev=str_rot13(pack("H*",$adam)); #16进制还原,再rot13转换 $decoded=gzinflate(base64_decode($ev)); #base64解码,再gzinflate解压还原
这种方式可能用户部分代码混淆,留网站后门等。
本文为Adamin90原创文章,转载无需和我联系,但请注明来自http://www.lixiaopeng.top