方法代码:
<?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); // 判断文件是否已经被编码处理 $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 = 'test.php'; //需要加密的文件完整路径 encode_file_contents($filename); echo "OK,加密完成!"
test.php原代码:
<?php echo 1; ?>
加密后
<?php eval(gzinflate(base64_decode('41JITc7IVzC0VrC3AwA='))); ?>
以上只是简单的文件加密,大家也可以参考以上方法完善和修改里面的加密规则