php 加密解密方法,php加密方法与解密方法

测试文件

test.php

1.加密方法:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 长度

$q1 .= 64_decode -> base64_decode

*/

$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;

file_put_contents('./test_encode.php', '');

?>

运行加密后生成TEST_ENCODE.PHP文件

解析

'.$O00O0O($O0OO00($OO0O00($O0O000,$OO0000*2),$OO0O00($O0O000,$OO0000,$OO0000),$OO0O00($O0O000,0,$OO0000))));

第二步是执行解码后的代码

解码后为另外一份代码,根据加密算法可知$O0O000变量的值为密钥1+密钥2+源代码编码并进行替换后的字符串,

这边先将替换掉的字符串还原回去,之后再进行base64_decode进行解码,即可获得原来的代码!!!

注意:由于源代码已经包含,所以这边必须加入'?>'

*/

?>

2.解密方法

*/

// 要解密的文件,去掉php标识

$encode_sourcecode = file_get_contents("./test_e.php");

$encode_sourcecode = str_replace('','', $encode_sourcecode);

// 提取第一次需要解密的内容

// 即JE8wTzAwMD0iTmV5SElCamZRdk......1UYVNuUUpnY21UYVVoOCtoTm89IjtldmFsKCc/==

echo '

------------------------------$encode_sourcecode_content

';

$start = strripos($encode_sourcecode, '("') + 2;

$end = strripos($encode_sourcecode, '")');

$encode_sourcecode_content = substr($encode_sourcecode, $start, $end - $start);

echo $encode_sourcecode_content;

// 解密加密部分的代码后的内容

// $O0O000="NeyHIBjfQvDMwo......JoSptgMdl3M3JgSKQTiB0nuh8+hNo="; eval('......OO0000))));

echo '

------------------------------$decode_sourcecode_content

';

$decode_sourcecode_content = base64_decode($encode_sourcecode_content);

echo $decode_sourcecode_content;

// 解密后还是一个加密的代码,需要再次解码,所以要再次提取需要被解密的内容出来

// 即NeyHIBjfQvDMwo......JoSptgMdl3M3JgSKQTiB0nuh8+hNo=

echo '

------------------------------$decode_sourcecode_content_encode_content

';

$start = stripos($decode_sourcecode_content, '"') + 1;

$end = strripos($decode_sourcecode_content, '"') ;

$decode_sourcecode_content_encode_content = substr($decode_sourcecode_content, $start, $end - $start);

echo $decode_sourcecode_content_encode_content;

// 根据加密规则,替换字符并解码,即可得到原文件

echo '

------------------------------$decode_sourcecode_content_encode_content

';

$origin_content = base64_decode(strtr(

substr($decode_sourcecode_content_encode_content, 104),

substr($decode_sourcecode_content_encode_content, 52, 52),

substr($decode_sourcecode_content_encode_content, 0, 52)));

var_dump($origin_content);

file_put_contents('./test_origin.php', $origin_content);

?>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值