PHP的加密方式及原理
2015-01-24信息快讯网
有兴趣研究了一下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}.$OOO000000{16}; // $O0O00OO00 = 'fread' $OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8}; // $OOO00000O = 'strtr' $OOO0O0O00=__FILE__; //取得当前文件路径和文件名 $OO00O0000=0x100; eval($OOO0000O0('JE8wMDBPME8wMD0kT09PMDAwTzAwKCRPT08wTzBPMDAsJ3JiJyk7JE8wTzAwT08wMCgkTzAwME8wTzAwLDB4NTI2KTskT08wME8wME8wPSRPT08wMDAwTzAoJE9PTzAwMDAwTygkTzBPMDBPTzAwKCRPMDAwTzBPMDAsMHgxN2MpLCdaQnhMYkZtQzYybHBja1hQYWRyR1VIOTRLN1FOUzVWdlJXenlpL2dPMEFUWU1EcXRvZkVJdStoZTNqd0oxOG5zPScsJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nKSk7ZXZhbCgkT08wME8wME8wKTs=')); /* 解出的结果是 $O000O0O00=$OOO000O00($OOO0O0O00,'rb');$O0O00OO00($O000O0O00,0x526);$OO00O00O0=$OOO0000O0($OOO00000O($O0O00OO00($O000O0O00,0x17c),'ZBxLbFmC62lpckXPadrGUH94K7QNS5VvRWzyi/gO0ATYMDqtofEIu+he3jwJ18ns=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));eval($OO00O00O0); 还原得并等价替换可得 $fp=fopen(__FILE__,'rb'); fread($fp,0x526); $buf = fread($fp,0x17c); $str=base64_decode(strtr($buf,'ZBxLbFmC62lpckXPadrGUH94K7QNS5VvRWzyi/gO0ATYMDqtofEIu+he3jwJ18ns=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')); eval($str); */ return;?>eu~fQ\FRCgGpG@Lo`oQ2b8PcLBPcLBPcL+I5C2vSgHoNmFy7rRO4+8mrUfF4+1Opx6O6z3iGu8Pcb1oGIZopz6O6zoiGu8PcLZocb1olxdPGu1ocLZocb102b1oGIZoGu1ocxRiGIZocb1oGIZopxdPGIZoGIZocLZApx5QaOWcKi7DaIKENCByQ+WaK9dEd+H6XGdpk+FXUIH95/24VO/Aph5PcbFU9U+bS4dt7iH25rD07GkT5u0fXmjIPrSM2uFxaudFdi56rUApGb+XG+BdU/kUHH749F/QK92y7mHg7hWAQgDMN9jtSCFESed+5O53V40ocG6IkLUhkIRjlE1OlriAXh7yNm8I7rRiGIZocb1oGIZolGD/5gFMlxdPGIZoGIZoGIZAXo==xzd2rU/2rU/2rU/Mc9oRPrZidufPaiFcU+MOrU/2rU/2rU/2NLbf2+u02hfAKz8yNhjgQ9SqSmWo2EiJxg/g6xRirU/2rU/2rU/2NLFM6Lu8PrBuSOH/laAJ2b5cGu2BGFkN2u/2rU/2rU/2rU/2rr55lx2cNhkW5m/tNy0RQxjoQCZzlGD8xgHMShUlVEdCGb8xaUfG9E52rU/2rU/2rU/2rUiO4rRzGm8yK4dANh3w6m/qSedWNmozlGD8xR==kLHgJcZ[ZM
解析PHP高效率写法(详解原因)
php代码书写习惯优化小结
浅析使用Turck-mmcache编译来加速、优化PHP代码
解析如何用php screw加密php源代码
php_screw 1.5:php加密: 安装与使用详解
具有时效性的php加密解密函数代码
一个简单的php加密解密函数(动态加密)
深入PHP数据加密详解
php中jQuery插件autocomplate的简单使用笔记
php面向对象 字段的声明与使用
PHP对象Object的概念 介绍
深入了解PHP类Class的概念
让PHP更快的提供文件下载的代码
深入理解PHP之数组(遍历顺序) Laruence原创
php实现rc4加密算法代码
php 的加密函数 md5,crypt,base64_encode 等使用介绍
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
支持中文的php加密解密类代码
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)