文章目录:
PHP项目给客户的源代码怎么加密?不希望别人做改版盗用二次开发之类的
市场上有很多,什么IonCube、Zend Guard等,不过这个解密的话很简单,网上很多教程。基本都是一键解密,而且这二种还都需要在服务器上额外安装相应的扩展组件,已经很少人用了。
所以最好是程序员自己对源码进行加密,这个能让破解者头疼,解密的话只能靠自己的经验,没有统一的解密方法。但是这种加密方式一般来说自己很难操作,借助于相应的加密软件吧,目前也就 PHP代码加密工具 Xend 能独挡一面,很多保护方式都不可逆,也支持用户自己编程加密。
php加密授权以及打包怎么做
1关于PHP打包
把PHP解释器和PHP项目打包成一个安装包完全没有问题的,我甚至把PHP解释器打包到Android手机上跑都没问题.因为PHP官方提供了Windows版本的二进制包,所以连自己编译这一步都省了,为了精简PHP解释器,你可以把你不需要的扩展都删除掉,比如intl扩展及其依赖的ICU,精简后打包估计解释器能小于5个MB.因为PHP内置了HTTP服务器和SQLite数据库,所以客户端连Apache和MySQL也不依赖了,直接就能跑PHP项目,而且还省资源.
2.关于PHP代码保护
PHP7的opcache支持用opcache.file_cache导出PHP脚本对应的二进制opcode,这些opcode是跟操作系统和PHP解释器版本相关的,能起到一定的代码保护的作用.另外,Zend
Guard和ionCube也提供了付费的PHP代码加密服务.
3.授权
比如可以在加密过的PHP代码里判断$_SERVER['SERVER_NAME'],如果不是授权时绑定的域名,就直接拒绝服务.如果还有什么不懂不明白的,你可以和我在后盾人看看教材找找答案,时间久了,就都清楚了,希望能帮到你
怎样给PHP源代码加密
试试IP-guard
支持各种源代码自动加密保护,加密解密无需手动操作,只要在部署了IP-guard的环境下就可以正常使用,而未经解密将加密的源代码带离授权环境,则无法正常打开源代码操作。
PHP中给源代码加密的几种方法
?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 = 'dam.php';
encode_file_contents($filename);
echo "OK,加密完成!"
?
?php
function RandAbc($length = "") { // 返回随机字符串
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
return str_shuffle($str);
}
$filename = 'index.php'; //要加密的文件
$T_k1 = RandAbc(); //随机密匙1
$T_k2 = RandAbc(); //随机密匙2
$vstr = file_get_contents($filename);
$v1 = base64_encode($vstr);
$c = strtr($v1, $T_k1, $T_k2); //根据密匙替换对应字符。
$c = $T_k1.$T_k2.$c;
$q1 = "O00O0O";
$q2 = "O0O000";
$q3 = "O0OO00";
$q4 = "OO0O00";
$q5 = "OO0000";
$q6 = "O00OO0";
$s = '$'.$q6.'=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$'.$q1.'=$'.$q6.'{3}.$'.$q6.'{6}.$'.$q6.'{33}.$'.$q6.'{30};$'.$q3.'=$'.$q6.'{33}.$'.$q6.'{10}.$'.$q6.'{24}.$'.$q6.'{10}.$'.$q6.'{24};$'.$q4.'=$'.$q3.'{0}.$'.$q6.'{18}.$'.$q6.'{3}.$'.$q3.'{0}.$'.$q3.'{1}.$'.$q6.'{24};$'.$q5.'=$'.$q6.'{7}.$'.$q6.'{13};$'.$q1.'.=$'.$q6.'{22}.$'.$q6.'{36}.$'.$q6.'{29}.$'.$q6.'{26}.$'.$q6.'{30}.$'.$q6.'{32}.$'.$q6.'{35}.$'.$q6.'{26}.$'.$q6.'{30};eval($'.$q1.'("'.base64_encode('$'.$q2.'="'.$c.'";eval(\'?\'.$'.$q1.'($'.$q3.'($'.$q4.'($'.$q2.',$'.$q5.'*2),$'.$q4.'($'.$q2.',$'.$q5.',$'.$q5.'),$'.$q4.'($'
nts($filename); echo "OK,加密完成!" ??php function RandAbc($length = "") { // 返回随机字符串 $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZab