很多站长朋友们都不太清楚php代码加密开源,今天小编就来给大家整理php代码加密开源,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP中给源代码加密的几种方法 2、 求PHP程序域名限制使用加密代码 3、 如何加密解密php源代码 4、 php源码怎么加密 5、 怎样给PHP源代码加密 6、 PHP项目给客户的源代码怎么加密?不希望别人做改版盗用二次开发之类的 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.'($'
求PHP程序域名限制使用加密代码你想使用的不怎么靠谱。如果是PHP熟的一眼就能破了或者改写。另外支持网址ascii码不知道你说的是什么意思。。。是指://-之类的符号不
通常php手工加密程序主要有2种:
1 是如果你的网站开了exec,eval之类的(普通的虚拟主机就别想了,一般独立或者vps才会给你这权限)可以使用base64或者自己的加解密算法来加密程序语句,再执行这个语句。
比如 if (1 ==1){echo 'wrong'} 这句,
你执行 echo $str=base64_encode ("if (1== 1){echo 'wrong'} ") ;
可以得到加密后的语句,这个加密后的程序你可以贴到程序里了。
把这个加密后的语句 eval(base64_decode($str)); 就可以执行
第二种比较绝,可以满足你域名限制的要求。是通过include和require远程调用(你可以搜索一下。我以前看书看过设置好环境之后,require等可以引用其他服务器上的php文件)
php官方手册上是这么说的:只要在 php.ini 文件中激活了 allow_url_fopen 选项,就可以在大多数需要用文件名作为参数的函数中使用 HTTP 和 FTP 的 URL 来代替文件名。同时,也可以在 include、include_once、require 及 require_once 语句中使用 URL。
而手册上include函数里进一步阐述:远程调用文件实际上是请求第三方服务器一个php文件。如果这个服务器本身也能执行php,返回的实际上是php执行后的文本串文件。请求的服务器接收到这个文本串,会把它当php程序解析。
那么利用这一点,你可以在另外一个服务器上设置一个php文件,判断请求的网址是否是你允许的,也就是买了你的程序的网站域名。如果允许就把这一关键php程序代码返回给请求服务器,让请求服务器执行相关程序。
比如客户网站程序里(必要时还可以用第一种方式来加密这句话)
inclue(" 自有的网址/core.php");
你自有的网站的core.php判断请求的来源网址,输出程序代码给客户网站。
以上方法只是一个思路,稍微牛一点的人都会破解。
实际上像php这种开源编程,任何手工加密都容易被破解。
官方的推荐方法是,php加密可以用zend来实现。
百度一下Zend GUARD或者zend加密即可。然后买空间时候要注意买zend加密的空间。
如何加密解密php源代码使用Zend Guard加密php源代码,使用
Zend Guard Loader
在服务器端解密源代码。
php源码怎么加密一、无需任何PHP扩展的加密
此类加密的代表有 威盾PHP加密专家、PHP在线加密平台、PHP神盾 等。
此类加密都是以eval函数为核心,辅以各式各样的字符串混淆和各种小技巧,来达到加密目的(更准确的说,应该算是混淆)。下面以一个简单的hello world为例来说明此类加密的大体过程。
<?php
echo "hello world";
首先 ,我们把这段代码变为通过eval执行的
<?php
eval('echo "hello world";');
然后 ,我们再进行一些转换,比如说base64编码
<?php
eval(base64_decode('ZWNobyAiaGVsbG8gd29ybGQiOw=='));
就这样子,我们的第一个加密过的php代码新鲜出炉了。。。
上面这个例子非常非常简单,基本上任何有一点php语言基础甚至别的语言基础的人都能轻松的看懂并解密。因此,我们需要一些方法让这个加密至少看上去不是那么简单。
二、同时采用多种编码函数
除了刚才提到的base64,php还有许多内置的编码函数,例如urlencode、gzcompress等。把这些函数混合使用可以提高解密的复杂度(不是难度),此外还可以使用strtr来制定自己的编码规则。 使用变量来代替函数名 使用特定字符来命名变量
这儿所说的特定字符是一些极其相似的字符,如I和1,0和O。试想一下满屏都是O和0组成的变量,并且每一个的名字长度都在10个字符以上。。。 判断文件自身是否被修改
这个功能看似容易,对文件做一下摘要再进行下对比即可知道是否被修改了,但是如何才能在文件内把摘要嵌入进去呢?我没有找到完美的方案,但一个变通的方案还是很容易的。。。
<?php
$code = substr(file_get_contents(__FILE__), 0, -32);
$hash = substr(file_get_contents(__FILE__), -32);
if (md5($code) !== $hash) {
exit('file edited');
}
ACBC41F727E00F85BEB3440D751BB4E3
当然,你可以把这个校验字符串放在别的位置来提高破解的难度。有了这个,别人想破解你的程序可就得多费一点功夫了。。。
既然知道了原理,那解密自然也就非常简单了,总体来说就三步:
把eval替换为输出,比如echo 根据编码规则把字符串还原 如果文件未解密完全,从第一步开始继续
当然,实际上的解密过程并没有这么简单,比如说如果加密的时候使用了gzcompress,那得到的数据将会包含一些二进制数据,而采用一般的文本编辑器打开时这些数据都会显示为乱码,并且在保存时丢失部分数据。解决方法很简单也很麻烦,那就是使用二进制(16进制)方式打开、修改和保存。
怎样给PHP源代码加密用Zend的加密吧,但是还是可以解密的,这也没办法,凡是对称加密或非不可逆的加密算法,均可以解密,这只是时间问题。特别是没有密码的加密(不可逆除外)。
可以这样,使用AES加密,再用GZIP压缩,然后运行时解密,在eval那些代码。
前提是每个加密的文件的密码都不同,要购买才可以解密运行。(itjob祝你实现开发梦)
PHP项目给客户的源代码怎么加密?不希望别人做改版盗用二次开发之类的市场上有很多,什么IonCube、Zend Guard等,不过这个解密的话很简单,网上很多教程。基本都是一键解密,而且这二种还都需要在服务器上额外安装相应的扩展组件,已经很少人用了。
所以最好是程序员自己对源码进行加密,这个能让破解者头疼,解密的话只能靠自己的经验,没有统一的解密方法。但是这种加密方式一般来说自己很难操作,借助于相应的加密软件吧,目前也就 PHP代码加密工具 Xend 能独挡一面,很多保护方式都不可逆,也支持用户自己编程加密。
关于php代码加密开源的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php代码加密开源 php源码加密方法的详细内容...