PHP的加密方式及原理

代码如下:

<?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

(0)

相关推荐

  • PHP实现加密的几种方式介绍

    PHP中的加密方式有如下几种 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str  --  原始字符串. raw_output  --  如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回. 这是一种不可逆加密,执行如下的代码 $password = '123456'; echo md5($password); 得到结果是e10adc3949

  • PHP 加密与解密的斗争

    但是PHP反编译系统的出现却迅速引起了Zend公司甚至整个PHP用户群的恐慌,包括上述产品在内的几乎所有大型PHP产品全部出现了破解版本甚至出现了完整的源代码.如此一来,Zend不得不向Cracker们低头,承认所有的加密技术都有破解的办法,并承诺对加密产品进行改进以便提供更强的保护. PHP加密技术可以追溯到01年,当时PHP已经很火爆,所以许多公司希望能推出商业化的PHP系统,于是PHP加密(编译)产品应运而生,随后PHP大颚Zend公司推出了自己的Zend Encoder,直到现在,Zen

  • 一个PHP针对数字的加密解密类

    复制代码 代码如下: <?php/** * 加密解密类 * 该算法仅支持加密数字.比较适用于数据库中id字段的加密解密,以及根据数字显示url的加密. * @author 深秋的竹子 * @version alpha * @加密原则 标记长度 + 补位 + 数字替换 * @加密步骤: * 将a-z,A-Z,0-9 62个字符打乱,取前M(数字最大的位数)位作为 标记长度字符串,取第M+1 到第M+10位为数字替换字符串,剩余的为补位字符串 * 1.计算数字长度n,取乱码的第n位作为标记长度. *

  • PHP加密技术的简单实现

    一.MD5加密 直接干,这里以一个登录页面为例: <?php require_once 'config/database.config.php'; $act=$_REQUEST['act']; $username=$_POST['username']; $password=md5($_POST['password']); if ($act=='reg') { $sql="INSERT INTO user(username,password) VALUES('{$username}','{$

  • PHP的加密方式及原理

    复制代码 代码如下: <?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}; //然后

  • Python实现最常见加密方式详解

    前言 我们所说的加密方式,都是对二进制编码的格式进行加密的,对应到Python中,则是我们的Bytes. 所以当我们在Python中进行加密操作的时候,要确保我们操作的是Bytes,否则就会报错. 将字符串和Bytes互相转换可以使用encode()和decode()方法.如下所示: # 方法中不传参数则是以默认的utf-8编码进行转换In [1]: '南北'.encode()Out[1]: b'\xe5\x8d\x97\xe5\x8c\x97'In [2]: b'\xe5\x8d\x97\xe

  • Java对称加密工作模式原理详解

    这篇文章主要介绍了Java对称加密工作模式原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 对称加密又分为分组加密和序列密码. 分组密码,也叫块加密(block cyphers),一次加密明文中的一个块.是将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆运算),还原成明文组. 序列密码,也叫流加密(stream cyphers),一次加密明文中的一个位.是指利用少量的密钥(制乱元素)通过某种复杂的运算

  • python代码的几种常见加密方式分享

    目录 1.发行.pyc文件 1.1 编译加密 1.2 是否可逆 1.3是否影响模块调用 2.代码混淆 3.生成exe可执行文件 4…py文件转化为.so文件 5.附加运行辅助包文件 方式一:高级加密模式,需要引导代码 方式二:超级加密模式 方式三: 虚拟加密模式 Python的文件类型介绍: .py python的源代码文件 .pyc Python源代码import后,编译生成的字节码 .pyo Python源代码编译优化生成的字节码.pyo比pyc并没有优化多少,只是去掉了断言 .pyd Py

  • asp MD5加密方式使用建议

    1.修改MD5算法重的4个常数,这是最捷径的作法,其特点是加密后的数据和加密前非常类似,但是不会被破解 2.多次加密,对MD5加密过的数据进行二次或三次加密,或者在每次加密后从重抽取部分值进行在加密,比如"我爱你",加密后"1E6986ACEC7BAE541AB7B37B99260DAF",我们可以取任意一部分进行再加密,比如取前18位"1E6986ACEC7BAE541"进行再加密得到"E3E0A1F51038849583263FE1

  • 基于JS对象创建常用方式及原理分析

    前言 俗话说"在js语言中,一切都对象",而且创建对象的方式也有很多种,所以今天我们做一下梳理 最简单的方式 JavaScript创建对象最简单的方式是:对象字面量形式或使用Object构造函数 对象字面量形式 var person = new Object(); person.name = "jack"; person.sayName = function () { alert(this.name) } 使用Object构造函数 var person = { na

  • php加密之discuz内容经典加密方式实例详解

    本文实例讲述了php加密之discuz内容经典加密方式.分享给大家供大家参考,具体如下: 导读:有的时候,我们希望对表里的某些敏感字段进行加密,想了好长时间没有比较好的解决方案,后台在网上查了查,放心discuz论坛的这种方案对这种情况解决的不错,特copy过来,给大家分享一下,代码如下: header ( "Content-type:text/html;charset=UTF-8" ); echo $string='花园路888号'; echo '<hr/>加密有效期10

  • java EJB 加密与解密原理的一个例子

    加密与解密原理的一个例子 package lockunlock; import Java.awt.*;  import java.awt.event.*;  import java.Applet.*;  import javax.Swing.*;  import java.util.*;  public class LockUnlock extends JApplet {  private boolean isStandalone = false;  //Get a parameter valu

  • 两种JavaScript的AES加密方式(可与Java相互加解密)

    由于JavaScript属于弱类型脚本语言,因此当其与强类型的后台语言进行数据交互时会产生各种问题,特别是加解密的操作.本人由于工作中遇到用js与Java进行相互加解密的问题,在网上查了很多资料及代码段,均无法解决.后总结多篇文档内容终于找到解决办法,现记录与此: 下面给大家介绍两种JavaScript的AES加密方式,具体详情如下所示: 第一种:加解密时需要秘钥(key)和秘钥偏移量(iv)的情况,在线验证地址:http://www.seacha.com/tools/aes.html //该方

  • 对MD5加密方式使用者的建议

    根据MD5算法的特点,我们可以把MD5加密过程看作是一个函数调用过程,建议必须做如下方式修改,这样可以保证一定程度上你的网站用户和数据安全:  1.修改MD5算法重的4个常数,这是最捷径的作法,其特点是加密后的数据和加密前非常类似,但是不会被破解  2.多次加密,对MD5加密过的数据进行二次或三次加密,或者在每次加密后从重抽取部分值进行在加密,比如"我爱你",加密后"1E6986ACEC7BAE541AB7B37B99260DAF",我们可以取任意一部分进行再加密,

随机推荐