1、代码为什么要加密?
只要有程序员在,在源代码可读的情况下,无论多么复杂的系统,总有人可以破解其中的奥妙。
就比如Windows Server 2008的激活(没有源代码的情况),最新版的Windows Server 2008需要联机才能激活,即使这样,也有人可以做出注册机。没有源代码的Windows尚且如此,那有源代码就更容易破解了。
人都是有好奇心的 正如那句歌词 :得不到的更加爱、太容易来的就不理睬 所以为了抄袭,为了原创,代码要加密。
下面是一个简单的代码加密,利用base64加密实现代码加密。
function encode_file_contents($filename) {
$type=strtolower(substr(strrchr($filename,'.'),1));
if ("php" == $type && is_file($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;
}
public function demo()
{
$filename = '../app/api/controller/Test.php'; //需要加密的文件完整路径
$aa = $this->encode_file_contents($filename);
k($aa);die;
echo "OK,加密完成!";
}
目前也有好多代码加密的软件,大家也可以尝试尝试