PHP 的加密方式及原理
有兴趣研究了一下
PHP 的加密方式及原理,说白了算不上加密,只是用了 URL 编码和
BASE64 编码的转换
复制代码
代码如下:
<?php
//变量注意区分数字 "0" 和 字符"O"
$OOO000000
=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f
%74%6e%64');
// 解码已编码的 URL 字符串, 解码结果是 fg6sbehpra4co_tnd
$OOO0000O0
=
$OOO000000
{4}.
$OOO000000
{9}.
$OOO000000
{3}.
$OOO000000
{5};
//然后把 解码后的字符分别 取得 4, 9, 3, 5 里面的值并连接在一起,结果是 base。
//下同, 最后的结果是 base64_decode
$OOO0000O0
.=
$OOO000000
{2}.
$OOO000000
{10}.
$OOO000000
{13}.
$OOO000000
{16};
$OOO0000O0
.=
$OOO0000O0
{3}.
$OOO000000
{11}.
$OOO000000
{12}.
$OOO0000O0
{7}.
$OOO000000
{5};
?>
代码如下
:
<?php
eval
(
$GLOBALS
['OOO0000O0']
('JElJSUlJSUlJSUlJST0naGVhZGVyJzskSUlJSUlJSUlJbDExPSdpc19maWxlJzs='));
// $GLOBALS 已经定义的变量,$GLOBALS['OOO0000O0'] 值就是 base64_decode, 然后用
它解码后面的字符串,结果
是 $IIIIIIIIIIII='header';$IIIIIIIIIl11='is_file'; eval 执行解出来的字
符串,并得到相应的变量
?>
代码如下
:
<?php
/* */
$OOO000O00
=
$OOO000000
{0}.
$OOO000000
{12}.
$OOO000000
{7}.
$OOO000000
{5}.
$OOO000000
{15};
// 同上可得 $OOO000O00 = 'fopen'
$O0O000O00
=
$OOO000000
{0}.
$OOO000000
{1}.
$OOO000000
{5}.
$OOO000000
{14};
// $O0O000O00 = 'fget'
$O0O000O0O
=
$O0O000O00
.
$OOO000000
{11};
// $O0O000O0O = 'fgetc'
$O0O000O00
=
$O0O000O00
.
$OOO000000
{3};
// $O0O000O00 = 'fgets'
$O0O00OO00
=
$OOO000000
{0}.
$OOO000000
{8}.
$OOO000000
{5}.
$OOO000000
{9}.