首页 > 代码库 > 春哥技术博客来谈谈php源码加密那点事

春哥技术博客来谈谈php源码加密那点事

今天春哥技术博客给大家谈谈源码加密的那些事。加密就是阻碍进步的,asp.net就是因为都编译后发布,导致优秀源码少。

php源码比较常用有 Zend公司的ZendGuard 和 ionCube公司的ionCube PHP Encode。这两个加密都不能独立运行。要分别在ZendOptimizer和 ionCube PHP Accelerator的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;

}

运行加密后的代码 eval(gzinflate(base64_decode(‘加密后的字符串‘)));

效果图如下

技术分享

源码是这样的

技术分享

加密后原型是这样的

技术分享

复杂化后是这样的

技术分享

再简单化后是这样的

关键点函数:eval() 、base64_encode() 、base64_decode() 、gzinflate() 、gzdeflate()

也可以用其它编码、解码 函数混合使用。


本文出处:http://www.cgtblog.com/jishu/1004.html,转载请注明出处(春哥QQ:2931393342 微信号:wocgtblog)


本文出自 “春哥团队技术博客” 博客,请务必保留此出处http://cyeagle.blog.51cto.com/3168672/1931574

春哥技术博客来谈谈php源码加密那点事