- Odliczając do dnia zero. Stuxnet, czyli prawdziwa historia cyfrowej b...Cena: 25.93 zł
- Bezpieczeństwo systemu Linux w praktyce. Receptury. Wydanie IICena: 50.05 zł
- Bezpieczny system w praktyce. Wyższa szkoła hackingu i testy penetra...Cena: 64.35 zł
- Bezpieczeństwo systemów informatycznych. Zasady i praktyka. Wydanie ...Cena: 64.35 zł
Na temat łamania haseł tego typu jest wiele mitów i różnych bajek prawda jest taka że są to algorytmy szyfrujące jednostronnie co oznacza ze nie da się ich zdeszyfrować za pomocą cudownej metody.
A więc jak złąmać hasło zakodowane właśnie w ten sposób?
Odpowiedź jest prosta jedynie metoda brute force może nam pomóc.
Polega ona na zakodowywaniu ciągu począwszy od samej literki "a" teraz widać dlaczego nasze hasła powinny mieć ponad 8 znaków i używać przynajmniej jednej cyfry, jednego znaku specjalnego i jednej dużej litery.
Dobrze przemyślane hasło zapewni nam lepsze bezpieczeństwo bo złamanie hasła typu : !x7Q9v@kl! zajmie potwornie dużo czasu, a jak wiadomo zabezpieczenie jest dobre wtedy jeśli koszt jego złamania przewyższa korzyści z wykradniętych danych.
Lecz aby nie być gołosłownym zapodam jakiś kod tego typu.
Poniższy kod rozkodowuje hasło zakodowane md5() dałem tylko jedną literę "z" ponieważ już przy trzech skrypt bardzo długo się wykonuje.
Listing
<?php
set_time_limit(0);
$time=time();
function uid($l)
{
$pool="abcdefghijklmnoprsqtuvxyz";
$pool.="ABCDEFGHIJKLMNOPRSTUVXYZ";
$pool.="1234567890"; // losowanie z tych znaków
for($i=0; $i<$l; $i++)
{
@$s.=substr($pool,(rand()%(strlen($pool))),1);
}
return($s);
}
$txt=md5("z"); // haslo
$i=0;
while(1)
{
$i++;
$ciag=uid(rand(1,4)); // ilość losowanych znaków
if(md5($ciag)==$txt)
{
echo "<br><b>Odkodowano w ".$i." próbie w czasie ".(time()-$time)." sekund. </b><br>";
flush();
die();
}
else
{
if(!($i%50000))
{
echo $i." prób bez rezultatu po czasie ".(time()-$time)." sekund.<br>";
flush();
}
}
$file=@fopen("proby.txt","a");
@fwrite($file,$ciag."n");
@fclose($file);
}
?>
Ranga: Administrator serwisu Punktów: 0