Per favore dimmi due stringhe che hanno lo stesso valore di hash MD5

-4

Sì, so che MD5 è debole e non dovrebbe essere usato. Per dimostrare un concetto, ho bisogno di due stringhe con lo stesso valore MD5, ma tutto quello che riesco a trovare è binario. Ti piace questo bel esempio . Funziona bene come binario ma fallisce come stringa:

MD5("d131dd02c5e6eec4693d9a0698aff95c2fcab58712467eab4004583eb8fb7f8955ad340609f4b30283e488832571415a085125e8f7cdc99fd91dbdf280373c5bd8823e3156348f5bae6dacd436c919c6dd53e2b487da03fd02396306d248cda0e99f33420f577ee8ce54b67080a80d1ec69821bcb6a8839396f9652b6ff72a70") => edde4181249fea68547c2fd0edd2e22f

MD5("d131dd02c5e6eec4693d9a0698aff95c2fcab50712467eab4004583eb8fb7f8955ad340609f4b30283e4888325f1415a085125e8f7cdc99fd91dbd7280373c5bd8823e3156348f5bae6dacd436c919c6dd53e23487da03fd02396306d248cda0e99f33420f577ee8ce54b67080280d1ec69821bcb6a8839396f965ab6ff72a70") => e234dbc6aa0932d9dd5facd53ba0372a

Ma per la mia applicazione i dati binari non funzionano. Quindi qualcuno ha due stringhe che creano una collisione?

    
posta PiTheNumber 28.08.2012 - 11:12
fonte

1 risposta

3

Il tuo problema è che hai trattato la stringa esadecimale come una sequenza di caratteri ANSI (o qualcosa di simile). Ma devi trasformarlo, in modo che due caratteri esadecimali vengano trattati come un byte.

In PHP questo diventa:

echo MD5(hex2bin("d131dd02c5e6eec4693d9a0698aff95c2fcab58712467eab4004583eb8fb7f8955ad340609f4b30283e488832571415a085125e8f7cdc99fd91dbdf280373c5bd8823e3156348f5bae6dacd436c919c6dd53e2b487da03fd02396306d248cda0e99f33420f577ee8ce54b67080a80d1ec69821bcb6a8839396f9652b6ff72a70"));
echo "<br/>\n";
echo MD5(hex2bin("d131dd02c5e6eec4693d9a0698aff95c2fcab50712467eab4004583eb8fb7f8955ad340609f4b30283e4888325f1415a085125e8f7cdc99fd91dbd7280373c5bd8823e3156348f5bae6dacd436c919c6dd53e23487da03fd02396306d248cda0e99f33420f577ee8ce54b67080280d1ec69821bcb6a8839396f965ab6ff72a70"));

O per versioni PHP precedenti (PHP < 5.4.0):

echo md5(pack("H*", "d131d..."));
    
risposta data 28.08.2012 - 13:16
fonte

Leggi altre domande sui tag