Salted hash kommentarer på kode.
Jeg kan ikke huske hvor jeg har fundet inspiration til at gribe min function an, jeg kan bare huske at jeg ikke fandt det smart at ligge hele salten enten i starten eller slutning af min hashderfor splittede jeg strengen op og ligger en del i hver ende
Er der nogen der kan se nogle problemer ved det? eller har en anden ide til at gribe det an.
define('SALT_LENGTH', 9);
function generateHash($password, $salt = null)
{
if ($salt === null)
{
//if no salt defined, make one!
$salt = substr(md5(uniqid(rand(), true)), 0, SALT_LENGTH);
}
$saltFirstPart = substr($salt,0,ceil(SALT_LENGTH/2));
$saltLastPart = substr($salt,5,floor(SALT_LENGTH/2));
return $saltFirstPart . md5($saltLastPart . $password . $saltFirstPart) . $saltLastPart;
}
function checkPass($password, $hash)
{
//Retrive the salt
$saltFirstPart = substr($hash,0,ceil(SALT_LENGTH/2));
$saltLastPart = substr($hash,37,floor(SALT_LENGTH/2));
//validate the password
if($saltFirstPart.md5($saltLastPart.$password.$saltFirstPart).$saltLastPart == $hash)
{
return true;
}
else
{
return false;
}
}
mvh
Daniel