首页技术php代码解密(php文件解密)

php代码解密(php文件解密)

编程之家2026-06-07868次浏览

大家好,今天小编来为大家解答php代码解密这个问题,php文件解密很多人还不知道,现在让我们一起来看看吧!

php代码解密(php文件解密)

php加密和解密的代码

php提供的加密函数不只是有MD5,虽然MD5是用得最多的,因为其安全性相对较好。但是现在也有网站通过提供庞大的数据库来对其进行破解(比如www.cmd5.com)。

除了MD5外,php还支持base64加密,这个函数可以进行解密,但是这种方式加密的结果并不是很安全,当然,如果要求不是很高的话,可以使用。进行base64加密的函数是:base64_encode($str);相反,对加密后的结果进行解密的函数是:base64_decode($str)。如:

<?php

$a="admin";

$b=base64_encode($a);

$c=base64_decode($b);

php代码解密(php文件解密)

echo"加密前:\$a=",$a,"<br/>";

echo"加密后:\$b=",$b,"<br/>";

echo"解密后:\$c=",$c,"<br/>";

?>

如果对这种方式得到的加密结果不满意,你可以对加密后或者加密前的字符串进行可逆处理(可逆是为了方便解密),然后在进行加密或者相关处理就可以了。

余下的自己搞定吧

php代码解密(php文件解密)

PHP文件如何解密

所谓的PHP文件加密,一般有两种方式,一是ZEND编译,二是BASE64等编码,理论上都不是加密,下面分别说说如何还原。

对于ZEND编译过的代码,用记事本打开是完全是乱码,除了前面的很小的头部,后面不是可见ASCII字符,有点像打开一个EXE文件的效果,是无法阅读的。这类处理的文件一般认为是无法还原的,网上有DEZEND工具,你可以下载来试试看,能还原早期ZEND版本编译后的代码。

对于使用BASE64等编码后的PHP文件,可以用记事本打开查看,所有字符都是可见ASCII字符,一般使用两种方法加大阅读难度:一是使用$ll111、$ooo000这样的变量,字母L的小写与1混在一起、字母O的小写与数字0混在一起,不容易分辨变量名称。二是使用BASE64编码对原始代码进行转换,最后使用eval进行处理。往往两种方式结合在一起。

第二种方式处理后的代码是很容易还原的,方法就是把eval换为exit,在CLI(命令提示符)下执行就会显示出eval那个语句对应的等效代码,替换原始语句即可。有时候还原一次后还是eval语句,那需要按照同样的方法反复处理。

急! php写的加密函数如何用java解密

php,jsp,delphi多语言兼容的简单的加密解密算法,jsp目前暂时没有实现中文的加密解密兼容。希望哪路高手能帮忙补上。

1,php的需要对以上代码稍加修改,内容如下:

<?php

$key="admin";

function keyED($txt,$encrypt_key){

$encrypt_key= md5($encrypt_key);

$ctr=0;

$tmp="";

for($i=0;$i<strlen($txt);$i++){

if($ctr==strlen($encrypt_key))$ctr=0;

$tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);

$ctr++;

}

return$tmp;

}

function encrypt($txt,$key){

srand((double)microtime()*1000000);

$encrypt_key= md5(rand(0,32000));

$ctr=0;

$tmp="";

for($i=0;$i<strlen($txt);$i++){

if($ctr==strlen($encrypt_key))$ctr=0;

$bbb=substr($encrypt_key,$ctr,1).

(substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));

$tmp.=$bbb;

$ctr++;

}

return base64_encode(keyED($tmp,$key));

}

function decrypt($txt,$key){

$txt=base64_decode($txt);

$txt= keyED($txt,$key);

$tmp="";

for($i=0;$i<strlen($txt);$i++){

$md5= substr($txt,$i,1);

$i++;

$tmp.=(substr($txt,$i,1) ^$md5);

}

return$tmp;

}

$string="hello world!";

// encrypt$string, and store it in$enc_text

$enc_text= encrypt($string,$key);

// decrypt the encrypted text$enc_text, and store it in$dec_text

$dec_text= decrypt($enc_text,$key);

echo"原字符串:".$string."<br/>";

echo"加密字符串:".$enc_text."<br/>";

echo"解密字符串:".$dec_text."<br/>";

?>

2,jsp代码(java类)

package com.intwork.struct.common;

import java.util.Random;

import sun.misc.BASE64Decoder;

import sun.misc.BASE64Encoder;

public class KeyED{

public char[] keyED(char[] cText,String encrype_key){

encrype_key=MD5.getInstance(encrype_key).encrypt();

int ctr=0;

char[] cEncrype_key=encrype_key.toCharArray();

char[] temp=new char[cText.length];

int ind=0;

String tmp="";

for(int i=0;i<cText.length;i++){

if(ctr==cEncrype_key.length){

ctr=0;

}

temp[ind++]=(char)(cText[i] ^ cEncrype_key[ctr]);

ctr++;

}

return temp;

}

public String encrype(String text,String key){

String encrype_key=MD5.getInstance(String.valueOf(new Random().nextInt(1000000))).encrypt();

int ctr=0;

char[] cText=text.toCharArray();

char[] cEncrype_key=encrype_key.toCharArray();

char[] temp=new char[cText.length*2];

int ind=0;

String tmp="";

for(int i=0;i<cText.length;i++){

if(ctr==cEncrype_key.length){

ctr=0;

}

temp[ind++]=cEncrype_key[ctr];

temp[ind++]=(char)(cText[i]^cEncrype_key[ctr]);

ctr++;

}

BASE64Encoder b= new sun.misc.BASE64Encoder();

return b.encode(new String(this.keyED(temp,key)).getBytes());

}

public String decrype(String text,String key)throws Exception{

BASE64Decoder decoder= new BASE64Decoder();

text=new String(decoder.decodeBuffer(text));

char[] cText=text.toCharArray();

char[] temp=new char[cText.length/2];

int ind=0;

cText=this.keyED(cText, key);

String tmp="";

for(int i=0;i<cText.length;i++){

char md5=cText[i];

i++;

temp[ind++]=(char)(cText[i]^md5);

}

return new String(temp);

}

}

3,delphi代码(只有加密代码,没写解密代码。有兴趣的可以给补上)

function Tfrmunmsgmain.EnPlugPwcrypt(str, skey: string): string;

//加密插件用的字符串

var

IdEncoder64: TIdEncoderMIME;

sencrypt_key, stemp, stemp1: string;

ictr, i: Integer;

ifirst, ilast: Integer;

function enpwcrypt(str, skey: string): string;

//获取加密后的字符串

var

stemp, sencrypt_key: string;

ictr, i: Integer;

ifirst, ilast: Integer;

begin

try

result:='';

try

sencrypt_key:= LowerCase(UMD5Crypt.UGetMd5Str(skey));

ictr:= 1;

stemp:='';

for I:= 1 to length(str) do

begin

if(ictr= length(sencrypt_key)) then

ictr:= 1;

ifirst:= Ord(midstr(str,i,1)[1]);

ilast:= Ord(midstr(sencrypt_key,ictr,1)[1]);

stemp:= stemp+

chr((ifirst) XOR(ilast));

inc(ictr);

end;

result:= stemp;

except

end;

except

end;

//

end;

begin

try

result:='';

try

IdEncoder64:= TIdEncoderMIME.Create(Application);

sencrypt_key:= LowerCase(UMD5Crypt.UGetMd5Str(inttostr((Random(100000)))));

ictr:= 1;

stemp:='';

stemp1:='';

for I:= 1 to length(str) do

begin

if(ictr= length(sencrypt_key)) then

ictr:= 1;

ifirst:= Ord(midstr(str,i,1)[1]);

ilast:= Ord(midstr(sencrypt_key,ictr,1)[1]);

stemp1:= midstr(sencrypt_key,ictr,1)+

chr((ifirst) XOR(ilast));

stemp:= stemp+ stemp1;

inc(ictr);

end;

result:= IdEncoder64.Encode(enpwcrypt(stemp, skey))

finally

freeandnil(IdEncoder64);

end;

except

end;

end;

好了,文章到这里就结束啦,如果本次分享的php代码解密和php文件解密问题对您有所帮助,还望关注下本站哦!

AI人工智能怎么读?ai人工智能怎么读strcpy函数用法(strcpy在c语言中怎么用)