Gør dig selv en tjeneste, og brug et standardbibliotek for hashing af dine adgangskoder.
Fordi sikkerhed har en tendens til at være meget mere kompliceret og med flere usynlige skrue-up-muligheder, end de fleste programmører kunne tackle alene, er brugen af et standardbibliotek næsten altid den nemmeste og mest sikre (hvis ikke den eneste) tilgængelige mulighed.
Standardbiblioteket :
Tag et kig på:Bærbar PHP-adgangskode-hash-ramme
:phpass og sørg for at bruge CRYPT_BLOWFISH
algoritme, hvis det overhovedet er muligt.
eksempel på kode, der bruger 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 er blevet implementeret i nogle ganske velkendte projekter:
- phpBB3
- WordPress 2.5+ samt bbPress
- Drupal 7-udgivelsen, (modul tilgængeligt til Drupal 5 og 6)
- andre
Det gode er, at du ikke behøver at bekymre dig om detaljerne, disse detaljer er blevet programmeret af folk med erfaring og gennemgået af mange mennesker på internettet.
Uanset hvad du gør, hvis du går efter 'Jeg gør det selv, tak ' tilgang, brug ikke MD5
længere . Det er en god hashing-algoritme, men fuldstændig ødelagt af sikkerhedsmæssige årsager .
Bruger i øjeblikket krypt
, med CRYPT_BLOWFISH er den bedste praksis.
CRYPT_BLOWFISH i PHP er en implementering af Bcrypt-hash. Bcrypt er baseret på Blowfish-blokchifferet, der gør brug af dets dyre nøgleopsætning til at bremse algoritmen.
For mere information om adgangskodelagringsordninger kan du også læse Jeff `s blogindlæg om det:Du gemmer sandsynligvis adgangskoder forkert