Doe jezelf een plezier en gebruik een standaardbibliotheek voor het hashen van uw wachtwoorden.
Omdat beveiliging vaak veel gecompliceerder is en met meer onzichtbare fouten dan de meeste programmeurs alleen zouden kunnen oplossen, is het gebruik van een standaardbibliotheek bijna altijd de gemakkelijkste en veiligste (zo niet de enige) beschikbare optie.
De standaardbibliotheek :
Kijk eens naar:Draagbaar PHP-hashing-framework voor wachtwoorden
:phpass en zorg ervoor dat je de CRYPT_BLOWFISH
. gebruikt algoritme indien mogelijk.
voorbeeld van code met phpass (v0.2):
require('PasswordHash.php');
$pwdHasher = new PasswordHash(8, FALSE);
// $hash is what you would store in your database
$hash = $pwdHasher->HashPassword( $password );
// $hash would be the $hashed stored in your database for this user
$checked = $pwdHasher->CheckPassword($password, $hash);
if ($checked) {
echo 'password correct';
} else {
echo 'wrong credentials';
}
PHPass is geïmplementeerd in een aantal vrij bekende projecten:
- phpBB3
- WordPress 2.5+ en bbPress
- de Drupal 7 release, (module beschikbaar voor Drupal 5 &6)
- anderen
Het goede ding is dat u zich geen zorgen hoeft te maken over de details, die details zijn geprogrammeerd door mensen met ervaring en beoordeeld door veel mensen op internet.
Wat je ook doet als je voor de 'Ik doe het zelf, bedankt ' benadering, gebruik geen MD5
meer . Het is een leuk hash-algoritme, maar volkomen kapot voor veiligheidsdoeleinden .
Momenteel gebruikt crypt
, waarbij CRYPT_BLOWFISH de beste werkwijze is.
CRYPT_BLOWFISH in PHP is een implementatie van de Bcrypt-hash. Bcrypt is gebaseerd op het Blowfish-blokcijfer en maakt gebruik van zijn dure sleutelconfiguratie om het algoritme te vertragen.
Voor meer informatie over wachtwoordopslagschema's kunt u ook Jeff lezen `s blogpost erover:Je slaat waarschijnlijk wachtwoorden verkeerd op