注意,加密后的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,'?');
return false;
}
//调用函数
$filename = 'dam.php';
encode_file_contents($filename);
echo "OK,加密完成!"
function RandAbc($length = "") { // 返回随机字符串$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";return str_shuffle($str);
$filename = 'index.php'; //要加密的文件
$T_k1 = RandAbc(); //随机密匙1
$vstr = file_get_contents($filename);
$q1 = "O00O0O";
//echo $s;
// 生成 加密后的PHP文件
$fpp1 = fopen('temp_'.$filename, 'w');
fwrite($fpp1, $s) or die('写文件错误');
其实,PHP加密源码方式有很多,譬如,免费的微盾PHP加密,还有 搞的在线加密,只是phpjm更复杂点而已.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++另外,分享一个 PHP类,它能对 文本的内容进行 二进制加密 与 解密,代码如下:
class text_auth
{
var $n_iter;
function text_auth()
function setIter($n_iter)
$this-n_iter = $n_iter;
function getIter()
return $this-n_iter;
function encrypt($data, $key)
$data_long[0] = $n;
if (($n 1) == 1) {
$data_long[$n] = chr(0);
$n_data_long++;
if ( '' == $key )
$key = '0000000000000000';
$w = array(0, 0);
$j = 0;
$k = array(0, 0, 0, 0);
for ($i = 0; $i $n_data_long; ++$i) {
$k[0] = $key_long[$j];
$k[1] = $key_long[$j + 1];
} else {
$k[0] = $key_long[$j % $n_key_long];
return $enc_data;
function decrypt($enc_data, $key)
$w = array(0, 0);
$j = 0;
$len = 0;
$k = array(0, 0, 0, 0);
$pos = 0;
$this-_decipherLong($enc_data_long[$i], $enc_data_long[$i + 1], $w, $k);if (0 == $i) {
$len = $w[0];
return $data;
function _encipherLong($y, $z, $w, $k)
$sum = (integer) 0;
$n = (integer) $this-n_iter;
while ($n-- 0) {
$y = $this-_add($y,
$sum = $this-_add($sum, $delta);
$z = $this-_add($z,
$w[0] = $y;
$w[1] = $z;
function _decipherLong($y, $z, $w, $k)
function _resize($data, $size, $nonull = false){
$n = strlen($data);
$nmod = $n % $size;
if ( 0 == $nmod )
$nmod = $size;
if ($nmod 0) {
if ($nonull) {
for ($i = $n; $i $n - $nmod + $size; ++$i) {$data[$i] = $data[$i % $n];
for ($i = $n; $i $n - $nmod + $size; ++$i) {$data[$i] = chr(0);
return $n;
$len = strlen($str);
return pack('H' . $len, $str);
$n = strlen($data);
$tmp = unpack('N*', $data);
$j = $start;
foreach ($tmp as $value)
$data_long[$j++] = $value;
return $j;
return pack('N', $l);
function _rshift($integer, $n)
if (0xffffffff $integer || -0xffffffff $integer) {$integer = fmod($integer, 0xffffffff + 1);}
$integer -= 0xffffffff + 1.0;
$integer += 0xffffffff + 1.0;
if (0 $integer) {
$integer = $n;
return $integer;
$result = 0.0;
foreach (func_get_args() as $value) {
if (0.0 $value) {
$value -= 1.0 + 0xffffffff;
$result += $value;
if (0xffffffff $result || -0xffffffff $result) {$result = fmod($result, 0xffffffff + 1);
$result -= 0xffffffff + 1.0;
$result += 0xffffffff + 1.0;
return $result;
使用方法参考如下:
// 加密过程
view sourceprint?
$str = @file_get_contents($text_file);
require_once S_ROOT . "./text_auth.php";
// 解密过程
view sourceprint
file_put_contents($filename, $str);
可以参考以下几种方法:
方法一: file_get_contents获取
span style="white-space:pre"?/span$url="";
span style="white-space:pre"?/span$fh= file_get_contents
('');span style="white-space:pre"?/spanecho $fh;
方法二:使用fopen获取网页源代码
span style="white-space:pre"?/span$handle = fopen ($url, "rb");
span style="white-space:pre"?/span$contents = "";
span style="white-space:pre"?/spanwhile (!feof($handle)) {
span style="white-space:pre"?/span}
span style="white-space:pre"?/spanfclose($handle);
span style="white-space:pre"?/spanecho $contents; //输出获取到得内容.
方法三:使用CURL获取网页源代码
$url="";
$curl = curl_init();?//创建一个新的CURL资源
curl_setopt($curl, CURLOPT_URL, $url);?//设置URL和相应的选项
curl_setopt($curl, CURLOPT_HEADER, 0);? //0表示不输出Header,1表示输出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);?//设定是否显示头信息,1显示,0不显示.//如果成功只将结果返回,不自动输出任何内容.如果失败返回FALSE
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_ENCODING, '');?//设置编码格式,为空表示支持所有格式的编码
//header中"Accept-Encoding: "部分的内容,支持的编码格式为:"identity","deflate","gzip".
curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
//设置这个选项为一个非零值(象 "Location: ")的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 "Location: "的头).
$data = curl_exec($curl);
echo $data;
//echo curl_errno($curl); //返回0时表示程序执行成功
curl_close($curl);?//关闭cURL资源,并释放系统资源
拓展资料
PHP(外文名:PHP: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域.PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法.它可以比CGI或者Perl更快速地执行动态网页.
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快.
参考资料:PHP(超文本预处理器)-百度百科
①.、使用file_get_contents获得网页源代码.这个方法最常用,只需要两行代码即可,非常简单方便.
所谓的网页代码,就是指在网页制作过程中需要用到的一些特殊的"语言",设计人员通过对这些"语言"进行组织编排制作出网页,然后由浏览器对代码进行"翻译"后才是我们最终看到的效果.
制作网页时常用的代码有HTML,JavaScript,ASP,PHP,CGI等,其中超文本标记语言(标准通用标记语言下的一个应用、外语简称:HTML)是最基础的网页代码.
第一段:无需任何PHP扩展的加密
此类加密的代表有 威盾PHP加密专家、PHP在线加密平台、PHP神盾 等.
此类加密都是以eval函数为核心,辅以各式各样的字符串混淆和各种小技巧,来达到加密目的(更准确的说,应该算是混淆).下面以一个简单的hello world为例来说明此类加密的大体过程.
echo "hello world";
首先 ,我们把这段代码变为通过eval执行的
eval('echo "hello world";');
就这样子,我们的第一个加密过的php代码新鲜出炉了...
上面这个例子非常非常简单,基本上任何有一点php语言基础甚至别的语言基础的人都能轻松的看懂并解密.所以呢,我们需要一些方法让这个加密至少看上去不是那么简单.
第二段:同时采用多种编码函数
这儿所说的特定字符是一些极其相似的字符,如I和1,0和O.试想一下满屏都是O和0组成的变量,并且每一个的名字长度都在10个字符以上... 判断文件自身是否被修改
这个功能看似容易,对文件做一下摘要再进行下对比即可知道是否被修改了,但是如何才能在文件内把摘要嵌入进去呢?我没有找到完美的方案,但一个变通的方案还是很容易的...
exit('file edited');
当然,你可以把这个校验字符串放在别的位置来提高破解的难度.有了这个,别人想破解你的程序可就得多费一点功夫了...
既然知道了原理,那解密自然也就非常简单了,总体来说就三步:
把eval替换为输出,比如echo 根据编码规则把字符串还原 如果文件未解密完全,从第一步开始继续
我猜,他不一定是将那些内容加密,有可能是将数据,使用系统自定义的json函数将其格式话而已.这样方便服务器端的动态语言与js交互.
json_decode就是将字符串变回数据集(如数组之类),翻翻帮助手册.
你想通过file_get_contents来拿那个列表,我到那里观察下,我觉得应该口口他的js,看清楚怎么拿到数据再下手,你提问中的地址,用这种方法拿不到数据吧?
我这里讨论下,好像对你没太大帮助,唉,水平有限.