位置:首页 > 建站笔记 > PHP > PHP实现源码简单编码加解密

PHP实现源码简单编码加解密

发布时间:2021-01-08 12:00:23

文章来源:原创

访问次数:40

 加密函数

<?php  
 function encryption($filename) {  
     $type=strtolower(substr(strrchr($filename,'.'),1));  
     if ('php' == $type && is_file($filename) && is_writable($filename)) { // 如果是PHP文件 并且可写 则进行压缩编码  
         $contents = file_get_contents($filename); // 判断文件是否已经被编码处理  
         $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'."\n eval(gzinflate(base64_decode("."'".$encode."'".")));\n\n?>";
         return file_put_contents($filename, $encode);
     }  
     return false;  
 }   
 //调用函数  
 $filename = 'index.php';//待加密的文件
 encryption($filename);  
 echo "OK,加密完成!" 
 ?>

解密函数

<?php
//已经加密的文件内容
$data = "eval(gzinflate(base64_decode('40pNzshXUCouKcrMS1eyVrC3AwA=')));";
function decrypt($data){
    $max_level = 300; //最大层数
    for ($i = 0; $i < $max_level; $i++) {
        ob_start();
        eval(str_replace('eval', 'echo', $data));
        $data = ob_get_clean();
        if (strpos($data, 'eval(gzinflate(base64_decode') === false) {
            return $data;
        }
    }
}
echo decrypt($data);
//得到echo "string";
?>


本文链接:http://www.huolidao.com/php/64.html


文章评论

表情

共 0 条评论,查看全部
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~