php源码怎么加密?-php教程

资源魔 97 0
php是今朝最盛行的web编程言语,不之一。但因为php是诠释执行的,源代码即顺序,为了贸易化(亦或是其余一些目的)加密是必不成少的。本系列将对国际常见/罕用的一些php加密手法做一些引见以及剖析。

php源码怎样加密?

php源码加密的办法:

1、无需任何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言语根底乃至此外言语根底的人都能轻松的看懂并解密。因而,咱们需求一些办法让这个加密至多看下来没有是那末简略。

2、同时采纳多种编码函数

除了了方才提到的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开发教程 php开发资料 php开发自学 PHP源码加密

抱歉,评论功能暂时关闭!