Jak już wspomniano, nie można odszyfrować MD5 bez próby użycia hakerów typu Brute Force, co jest niezwykle kosztowne, niepraktyczne i nieetyczne.
Jednakże można użyć coś podobnego do szyfrowania/deszyfrowania haseł/etc bezpiecznie:
$input = "SmackFactory";
$encrypted = encryptIt($input);
$decrypted = decryptIt($encrypted);
echo $encrypted . '<br />' . $decrypted;
function encryptIt($q) {
$cryptKey = 'qJB0rGtIn5UB1xG03efyCp';
$qEncoded = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($cryptKey), $q, MCRYPT_MODE_CBC, md5(md5($cryptKey))));
return($qEncoded);
}
function decryptIt($q) {
$cryptKey = 'qJB0rGtIn5UB1xG03efyCp';
$qDecoded = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($cryptKey), base64_decode($q), MCRYPT_MODE_CBC, md5(md5($cryptKey))), "\0");
return($qDecoded);
}
Stosując metodę encypted z solą byłby jeszcze bezpieczniejsze, ale to byłby dobry następny krok przeszłość tylko przy użyciu skrót MD5.
Nie odszyfrować MD5 ... – sachleen
Hashing jest operacją jednokierunkową, co oznacza, że nie można odszyfrować. Jednak możesz wymusić mieszanie hasza, aby znaleźć dane wejściowe dla niego. – Vulcan
md5 to stary i łatwy do złamania mechanizm hashowania hasłem, sugeruję użycie najnowszego algorytmu szyfrowania haseł. – KyelJmD