PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MD5 Hash salzer funktion



DonaldDrug
03.12.2010, 15:54
Hi,

hab hier ne funktion zum md5 hash salzen geschrieben:



function salty ($hash, $itemcut)
{
$salt = strrev($hash);
$length = strlen($hash);
$saltElements = ceil($length / $itemcut);
$str = '';
for($i = 0; $i < $saltElements; $i++)
{
$startItem = $i * $itemcut;
$endItem = $itemcut;
$str .= substr($hash, $startItem, $endItem);
$str .= $salt+++91;$i+++93;;
}
return $str;
}

function desalty ($hash, $itemcut)
{
$length = strlen($hash); /
$saltElements = floor($length / $itemcut);
$str = '';
$itemcut1 = $itemcut++;
for($i = 0; $i < $saltElements; $i++)
{
$startItem = $i * $itemcut;
$endItem = $itemcut1;
$str .= substr($hash, $startItem, $endItem);
}
return $str;
}+++91; = [

+++93; = ]

SFX
03.12.2010, 17:34
ich bin mir nicht sicher ob du das Prinzip "salted Hash" verstanden hast ^^



$password = "secret";
$salt = randomString(); // muss noch geschrieben werden.. wie lang der String ist ist dir überlassen ;)

$salted_hash = md5( md5( $password ) . $salt );
"desalt" ist nicht notwendig, wenn du das Passwort prüfen willst nimmst du den gespeicherten Wert, machst mit dem input das gleiche wie oben (wichtig, der gleiche Salt!) und vergleichst dann die Prüfsummen ;)

DonaldDrug
03.12.2010, 17:50
mh? dachte immer es soll den md5 hash noch weiter verschleiern

SFX
03.12.2010, 18:17
Tut es auch ;)

Dadurch dass es unendlich viele Salt-Kombinationen gibt, fallen Rainbowtables weg

Und Bruteforce dauert deutlich länger weil pro Versuch mehr gerechnet werden muss ;)

DonaldDrug
03.12.2010, 18:49
ja meine funktion verschleiert doch auch ganz fein ;)