柔晶美网络工作室

柔晶美网络工作室,倾心于web技术的博客站点

关注我 微信公众号

您现在的位置是: 首页 > 博客日记

php简单加密方法推荐一

2020-01-05 admin php  1679

加密的目的是保护源码,推荐这个方法的是:使用非常的简单,兼容性好,几乎所有代码都完美还原。缺点是过于简单,仅用于防止小白复制盗用源码。使用方法:将以下代码写入php文件中,运行该php文件后,将在目录下生成一个temp加密文件。代码如下:

function RandAbc($length = "") { // 返回随机字符串 
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; 
return str_shuffle($str); 
} 
$filename = 'functionhx.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.'($'.$q2.',0,$'.$q5.'))));').'"));'; 
//echo $s; 
$fpp1 = fopen('temp_'.$filename, 'w'); 
fwrite($fpp1, $s) or die('写文件错误');
fclose($fpp1);

为了提高效率,建议仅对核心函数代码进行加密,并在该代码前加上授权域名白名单,例如:

//远程获取白名单防复制
$url = 'https://blog.dzbfsj.com/baimingdan.php';
//获取不带端口号的域名前缀
$servername = trim($_SERVER['SERVER_NAME']);
//获取服务端授权文件校验
$verifyurl = file_get_contents($url.'?domain='.$servername);
if(empty($verifyurl)){
echo "源码未授权,请联系开发者微信或手机:13767725409";
exit;
}

在服务端,写上以下代码,将允许使用的域名加在数组里即可:

//获取域名
$domain = $_GET['domain'];
//授权域名列表
$Array = array('127.0.0.1','localhost','cf.dzbfsj.com');
//校验结果
echo in_array($domain, $Array) ? 'yes' : '';

这样,简单的源码防盗版功能就做好了。

当然,以下代码效果会更好:

function authorization($seed = '') {
$encode = $_SERVER['SERVER_SOFTWARE'] . $_SERVER['SERVER_NAME'] . $_SERVER['DOCUMENT_ROOT'] . 
$_SERVER['SERVER_ADMIN'] . $_SERVER['SERVER_ADDR'] . PHP_VERSION . PHP_OS . __FILE__;
return md5 ($encode);
}
$authorization_key = 'www.xiaoyi.com';
echo authorization($authorization_key);
//这里是生成字符串验证 
$authorization_check = array('dd670852938815f3892d3c511cc8fceb','ddc976cc02bce5c3c22c4d7d201c0cae' );
//授权字串,把生成的字符验证复制到这里来 
if (!in_array(authorization ($authorization_key), $authorization_check)) {
die('对不起,你的程序未经过小一授权!!');
}

加密的方式更加隐蔽,所以破解也更难了。

文章评论


需要 登录 才能发表评论
热门评论
0条评论

暂时没有评论!