function passhash($uid, $passwd, $username){
$flip = 4;
$flip2 = 9;
$salt1 = 'def';
$salt2 = 'abc';
$uid = (($uid ^ (1 << $flip)) ^ (1 << $flip2)) * ($uid >> 1);
return sha1($uid .
$salt1 .
sha1($passwd . $salt2) .
"Rick is een baas." .
md5($username . $salt2) );
} Is dit een goede password hasher?
|
|||
|
|
|||
|
||
|
nee man je salt is altijd tzelfde (btw ik weet er helemaal niks vanaf en wsl de rest van de gebruikers ook niet)
|
||
|
||
|
Dat de salt altijd hetzelfde is is toch niet erg?
Het is alleen belangrijk dat niemand het weet toch? Ik gebruik daarnaast ook nog de userid en de username, die een beetje de rol van dynamische salt overnemen. |
||
|
||
|
Versie 2
function passhash($uid, $passwd, $username, $salt){
$flip = 4;
$flip2 = 9;
$passwd = str_split($passwd, (strlen($passwd)/2)+1);
$username = str_split($username, (strlen($username)/3)+1);
$uid = (($uid ^ (1 << $flip)) ^ (1 << $flip2)) * ($uid >> 1);
return hash('whirlpool',
$passwd[0] . $uid . $salt . $username[1] .
$passwd[1] . $username[0]);
}
function genSalt(){
return uniqid(mt_rand(), true);
}even ter informatie, de oude hash function is function passhash($pass){
return md5(md5($pass));
}edit: gensalt moet returnen ipv echo-en natuurlijk :) Edited on 28 May 2011 13:10 by Rick Hendricksen. Edited on 02 June 2011 18:45 by Rick Hendricksen. |
||
|
||
|
random salt? maar je moet 'm toch ergens kunnen reproduceren?
|
||
|
||
|
Ik genereer de random salt 1 keer (en elke keer dat je je wachtwoord verandert) en dan sla ik hem op in de database, naast het wachtwoord.
Dit betekent dat je het wel kúnt brute forcen, maar dat je altijd maar 1 wachtwoord hebt per brute force poging. Dat betekent dus dat dit ge-salt er voor zorgt dat het bruteforcen van de hele database min(nUsers, 8^34) keer zo lang duurt. Daarnaast zorgt het er voor dat het zeer onwaarschijnlijk is dat iemand een rainbow table heeft liggen die mijn salt gebruikt. Edited on 28 May 2011 13:06 by Rick Hendricksen. Edited on 28 May 2011 19:38 by Rick Hendricksen. |
||
|
||
|
||
You must log in to post a reply
