很多站长朋友们都不太清楚php域名限制加密,今天小编就来给大家整理php域名限制加密,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 求PHP程序域名限制使用加密代码 2、 我有个PHP程序,想设置域名绑定加密,怎么实现? - 技术问答 3、 php域名加密限制,求破解,高分 4、 php源码怎么加密 5、 如何对PHP文件进行加密 6、 如何给php网站加密且限制在一段时间内使用 求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程序,想设置域名绑定加密,怎么实现? - 技术问答首先要写一个函数来读取域名,参考下面这个网址 然后你的代码要加密(只能防君子,防不了小人)
php域名加密限制,求破解,高分这个加密方式很常见,应该是叫威盾
文件我已经解密了,直接发到这里吧
财富值的话,希望你言而有信
<?php
final class System {
public static function load_sys_class($class_name='',$module='sys',$new='yes'){
static $classes = array();
$path=self::load_class_file_name($class_name,$module);
$key=md5($class_name.$path.$new);
if (isset($classes[$key])) {
return $classes[$key];
}
if(file_exists($path)){
include_once $path;
if($new=='yes'){
$classes[$key] = new $class_name;
}else{
$classes[$key]=true;
}
return $classes[$key];
}else{
_error('load system class file: '.$module." / ".$class_name,'The file does not exist');
}
}
public static function load_app_class($class_name='',$module='',$new='yes'){
if(empty($module)){
$module=ROUTE_M;
}
return self::load_sys_class($class_name,$module,$new);
}
public static function load_class_file_name($class_name='',$module='sys'){
static $filename = array();
if(isset($filename[$module.$class_name])) return $filename[$module.$class_name];
if($module=='sys'){
$filename[$module.$class_name]=G_SYSTEM.'libs'.DIRECTORY_SEPARATOR.$class_name.'.class.php';
}else if($module!='sys'){
$filename[$module.$class_name]=G_SYSTEM.'modules'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR."lib".DIRECTORY_SEPARATOR.$class_name.'.class.php';
}else{
return $filename[$module.$class_name];
}
return $filename[$module.$class_name];
}
public static function load_sys_config($filename,$keys=''){
static $configs = array();
if(isset($configs[$filename])){
if (empty($keys)) {
return $configs[$filename];
}else if (isset($configs[$filename][$keys])) {
return $configs[$filename][$keys];
}else{
return $configs[$filename];
}
}
if (file_exists(G_CONFIG.$filename.'.inc.php')){
$configs[$filename]=include G_CONFIG.$filename.'.inc.php';
if(empty($keys)){
return $configs[$filename];
}else{
return $configs[$filename][$keys];
}
}
_error('load system config file: '.$filename,'The file does not exist+');
}
public static function load_app_config($filename,$keys='',$module=''){
static $configs = array();
if(isset($configs[$filename])){
if (empty($keys)) {
return $configs[$filename];
}else if (isset($configs[$filename][$keys])) {
return $configs[$filename][$keys];
}else{
return $configs[$filename];
}
}
if(empty($module))$module=ROUTE_M;
$path=G_SYSTEM.'modules'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.'lib'.DIRECTORY_SEPARATOR.$filename.'.ini.php';
if (file_exists($path)){
$configs[$filename]=include $path;
if(empty($keys)){
return $configs[$filename];
}else{
return $configs[$filename][$keys];
}
}
_error('load app config file: '.$module." / ".$filename,'The file does not exist');
}
public static function load_sys_fun($fun_name){
static $funcs = array();
$path=G_SYSTEM.'funcs'.DIRECTORY_SEPARATOR.$fun_name.'.fun.php';
$key = md5($path);
if (isset($funcs[$key])) return true;
if (file_exists($path)){
$funcs[$key] = true;
return include $path;
}else{
$funcs[$key] = false;
_error('load system function file: '.$fun_name,'The file does not exist');
}
}
public static function load_app_fun($fun_name,$module=null){
static $funcs = array();
if(empty($module)){
$module=ROUTE_M;
}
$path=G_SYSTEM.'modules'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.'lib'.DIRECTORY_SEPARATOR.$fun_name.'.fun.php';
$key = md5($path);
if (isset($funcs[$key])) return true;
if (file_exists($path)){
$funcs[$key] = true;
return include $path;
}else{
_error('load app function file: '.$module." / ".$fun_name,'The file does not exist');
}
}
public static function load_app_model($model_name='',$module='',$new='yes'){
static $models=array();
if(empty($module)){
$module=ROUTE_M;
}
$key=md5($module.$model_name.$new);
if(isset($models[$key])){
return $models[$key];
}
$path=G_SYSTEM.'modules'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.'model'.DIRECTORY_SEPARATOR.$model_name.'.model.php';
if (file_exists($path)){
include $path;
if($new=='yes'){
$models[$key]=new $model_name;
}else if($new=='no'){
$models[$key]=true;
}
return $models[$key];
}
_error('load app model file: '.$module." / ".$model_name,'The file does not exist');
}
public static function CreateApp(){
return self::load_sys_class('application');
}
}
?>
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文件进行加密php加密平台自开通以来已加密了670367个php文件,总数据大小5823.04 MB2015-04-18更新:PHP在线加密Beta版支持命名空间加密,即php源码中有namespace的文件加密。2015-01-13维护:修复PHP5.5及以上php版本更好支持php加密(免费版已不更新,不修复)
php授权用户动态简化,只记录授权变化状态2014-12-09新增自定义授权错误信息提示(以前为白屏)2014-06-22新增支持heredoc和nowdoc语法结构的字符串2014-03-24修复部份代码中使用__FILE__不兼容的BUG2013-09-02修改:php免费加密后版权信息中增加中文声明2013-08-01新增功能:授权版可锁定php文件加密的文件名,php文件加密后不允许更改文件名。此功能配合锁定域名功能效果更佳。
修复:部份环境中获取不到服务器IP地址2013-06-20维护:常规更新维护,PHP加密代码小调整。2013-05-12修改:重写授权版的PHP加密算法,提高对代码的保护。2013-04-11调整:发现有个别用户使用我们免费的php加密平台对php源码加密后作为非法用途,因此把免费版对上传的php文件大小调整为50K。2013-03-11修改:为了加强付费授权版的使用安全,把免费版和付费授权版的算法分开处理。以后升级过程中主要针对付费授权版进行升级,免费版只做BUG修复处理。2013-02-01修改:免费版的版权信息中不再显示内核更新日期。
修改:编码加强混淆程度2013-01-07修改:php加密后的代码中去除“PHPJM_”标志性字符。
新增:先对php源码压缩后再加密,减小加密后的php文件大小
修复:php源代码中的php标签只有<?而没有?>时的BUG2012-12-11新增功能:授权版可锁定在某个日期段内运行,可将您的代码以试用方式进行发布。
修改:不再限制加密后的文件以.php为扩展名运行,支持以任何扩展名保存加密后的文件。
修复:自定义版权信息乱码BUG2012-11-14PHP在线加密平台上线2012-11-06完成PHP加密核心算法代码。
如何给php网站加密且限制在一段时间内使用ZEND不是似乎有那个设置试用期的功能吗?我好像看到过,最新版的有这个功能iminto 发表于 2009-5-7 10:24[i][/url][/b]对 zend guard 加密的时候可以选择过期时间。
关于php域名限制加密的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php域名限制加密 php指定域名访问的详细内容...