background image

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}.