程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP base64_decode 的兩種破解方法

PHP base64_decode 的兩種破解方法

編輯:關於PHP編程

PHP base64_decode+gzinflate壓縮編碼和解碼代碼

PHP目前在網絡中被用的越來越多,加密解密的話題也一直沒有停息過。下面簡單介紹一下base64_decode+gzinflate壓縮編碼和解碼代碼方法,就是通常我們在程序中見的eval(gzinflate(base64_decode(加密代碼))); 形式的加密方法。
網山有此類方法,但是由於局部缺少了某些字符,導致了加密後無法使用的情況,大家有興趣可以去試試看,本人在原基礎上做了簡單修改,經本人測試無錯。
注意:解密時請不要用漢語及帶空格的名字做文件名

壓縮編碼(加密)代碼:


 引用內容
<?php
function encode_file_contents($filename) {
$type=strtolower(substr(strrchr($filename,.),1));
if(php==$type && is_file($filename) && is_writable($filename)){// 如果是PHP文件 並且可寫 則進行壓縮編碼
$contents = file_get_contents($filename);// 判斷文件是否已經被編碼處理
$pos = strpos($contents,powered by arzn QQ:1314778);
if(false === $pos || $pos>100){ // 去除PHP文件注釋和空白,減少文件大小
$contents = php_strip_whitespace($filename);
// 去除PHP頭部和尾部標識
$headerPos = strpos($contents,<?php);
$footerPos = strrpos($contents,?>);
$contents = substr($contents,$headerPos+5,$footerPos-$headerPos);
$encode = base64_encode(gzdeflate($contents));// 開始編碼
$encode = <?php." eval(gzinflate(base64_decode("."".$encode.""."))); ?>";
return file_put_contents($filename,$encode);
}
}
return false;
}
//調用函數
$filename=code.php;
encode_file_contents($filename);
echo "OK,加密完成!"
?>


壓縮解碼(解密)代碼:


 引用內容

<?php
$Code = 這裡填寫要解密的編碼; // base64編碼
$File = decoded.php;//解碼後保存的文件
$Temp = base64_decode($Code);
$temp = gzinflate($Temp);
$FP = fopen($File,"w");
fwrite($FP,$temp);
fclose($FP);
echo "解密成功!";
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved