Jak zjistit heslo z md5 hashe v PHP.

Jedná se o zjišťování pomocí hrubé síly. Určitě to jde udělat lépe.  Jedná se o rekurzívní funkci.

 

// script na decryptovani retezce z MD5 hashe
// Cim je delsi delka retezce(maxNum) tim  vice narusta doba pro vyhledani 
// sedm znaku hleda dele nez hodinu
set_time_limit(0);

$myAnyText ="3a1f82725ba7be32fcd2b53ebaba59f3"; // md5("ata");
$pass = array($myAnyText);
foreach ($pass as $passwords) {
    $start = time();
    echo "<br>Heslo je: " . decrypt(trim($passwords), "");
    $end = time();
    echo "<br> Nalezení zabralo celkem: " . ($end - $start) . " sekund<br>";
}

function decrypt($pass, $answer)
{
    $array = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0');
    $maxNum = 5;
    if (!isset($answer)) {
        $answer = "";
    }
    if (strlen($answer) > $maxNum) {
        return;
    }

    for ($i = 0; $i < count($array); $i++) {
        $temp = $answer . $array[$i];
        if (md5($temp) == $pass) {
            return $temp;
        }

        $result = decrypt($pass, $temp);
        if (strlen($result) > 0) {
            return $result;
        }
    }
}

 

Související příspěvky