Big Bamboo
28-09-2008, 18:46
Spero possiate aiutarmi, sto diventando pazzo.
Problema:
Convertire del codice php (viene usato per il login su un forum) in c# (per usare lo stesso database e fare il login sul sito)
visto posto la porzione di codice php che mi crea problemi
$hash = pack('H*', md5($salt . $password));
do
{
$hash = pack('H*', md5($hash . $password));
}
while (--$count);
dove count vale 512;
in c#
StringBuilder hash = new StringBuilder(Pack(GetMD5Hash(salt.Append(clearPsw).ToString())));
do
{
hash = new StringBuilder(Pack(GetMD5Hash(hash.Append(clearPsw).ToString())));
} while (--count > 0);
mi sono ricreato la funzione PACK di php e mi pare funzioni bene.
La cosa strana è la seguente:
Il primo md5+pack al di fuori del ciclo do, funziona e in entrambe le implementazioni i valori ritornati sono uguali. Tutte le future chiamate invece restituiscono valori diversi, e non riesco a spiegarmi il perchè :muro:
:help:
Problema:
Convertire del codice php (viene usato per il login su un forum) in c# (per usare lo stesso database e fare il login sul sito)
visto posto la porzione di codice php che mi crea problemi
$hash = pack('H*', md5($salt . $password));
do
{
$hash = pack('H*', md5($hash . $password));
}
while (--$count);
dove count vale 512;
in c#
StringBuilder hash = new StringBuilder(Pack(GetMD5Hash(salt.Append(clearPsw).ToString())));
do
{
hash = new StringBuilder(Pack(GetMD5Hash(hash.Append(clearPsw).ToString())));
} while (--count > 0);
mi sono ricreato la funzione PACK di php e mi pare funzioni bene.
La cosa strana è la seguente:
Il primo md5+pack al di fuori del ciclo do, funziona e in entrambe le implementazioni i valori ritornati sono uguali. Tutte le future chiamate invece restituiscono valori diversi, e non riesco a spiegarmi il perchè :muro:
:help: