Помощь в преобразовании небольшого кода Python в PHP - PullRequest
0 голосов
/ 15 января 2010

пожалуйста, мне нужна помощь в преобразовании кода Python в синтаксис php код предназначен для генерации буквенно-цифрового кода с использованием альфа-кодировки

код:

def mkcpl(x):  
    x = ord(x)  
    set="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"  
    for c in set:  
        d = ord(c)^x  
        if chr(d) in set:  
            return 0,c,chr(d)  
        if chr(0xff^d) in set:  
            return 1,c,chr(0xff^d)  
    raise Exception,"No encoding found for %#02x"%x  


def mkalphadecryptloader(shcode):  
    s="hAAAAX5AAAAHPPPPPPPPa"  
    shcode=list(shcode)  
    shcode.reverse()  
    shcode = "".join(shcode)  
    shcode += "\x90"*((-len(shcode))%4)  
    for b in range(len(shcode)/4):  
        T,C,D = 0,"",""  
        for i in range(4):  
            t,c,d = mkcpl(shcode[4*b+i])  
            T += t << i  
            C = c+C  
            D = d+D  
        s += "h%sX5%sP" % (C,D)  
        if T > 0:  
            s += "TY"  
            T = (2*T^T)%16  
            for i in range(4):  
                if T & 1:  
                    s += "19"  
                T >>= 1  
                if T == 0:  
                    break  
                s += "I"  
    return s+"\xff\xe4"  

любая помощь будет очень признательна ...

Ответы [ 2 ]

4 голосов
/ 15 января 2010

я тебе немного помогу. В остальном, пожалуйста, прочтите документацию .

function mkcpl($x){
    $x=ord($x);
    $set="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    $set=str_split($set);
    foreach($set as $c){
        $d=ord($c)^$x;
        if( in_array( chr($d) ,$set ) ){
            return array(0,$c,chr($d));
        }
        if ( in_array( chr(0xff^d) ,$set ) ){
            return array(0,$c,chr(0xff^$d));
        }
    }
}

function mkalphadecryptloader($shcode){
    $s="hAAAAX5AAAAHPPPPPPPPa";
    # you could use strrev()
    $shcode=str_split($shcode);
    $shcode=array_reverse($shcode);
    $shcode=implode("",$shcode);
    # continue on... read the documentation
}

print_r(mkcpl("A"));
mkalphadecryptloader("abc");



Python:                                PHP

len() - length of string/array.        strlen(),count() 
range() - generate range of numbers    for($i=0;$i<=number;$i++)
<<                                     <<

остальные из них, такие как + =, == и т. Д., Практически одинаковы для двух языков.

0 голосов
/ 15 января 2010

остальные, такие как + =, == и т. Д. почти то же самое через 2 языки.

Тщательное; в PHP конкатенация строк выполняется с использованием .=, а не +=. Если вы попытаетесь использовать += PHP попытается математически оценить выражение (возможно, вернет ноль), и вы будете пытаться понять, что не так с вашим сценарием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...