Udělejte si laskavost a použijte standardní knihovnu pro hašování vašich hesel.
Vzhledem k tomu, že zabezpečení bývá mnohem komplikovanější a s více neviditelnými možnostmi, než jaké by většina programátorů dokázala vyřešit sama, je použití standardní knihovny téměř vždy nejjednodušší a nejbezpečnější (ne-li jediná) dostupná možnost.
Standardní knihovna :
Podívejte se na:Přenosný rámec pro hašování hesel PHP
:phpass a ujistěte se, že používáte CRYPT_BLOWFISH
algoritmus, pokud je to vůbec možné.
příklad kódu pomocí 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 byl implementován v některých docela známých projektech:
- phpBB3
- WordPress 2.5+ a bbPress
- vydání Drupal 7 (modul dostupný pro Drupal 5 a 6)
- ostatní
Dobrá věc je, že se nemusíte starat o detaily, tyto detaily byly naprogramovány lidmi se zkušenostmi a zkontrolovány mnoha lidmi na internetu.
Ať uděláte cokoli, pokud se rozhodnete pro „Udělám to sám, děkuji ', nepoužívejte MD5
uža . Je to pěkný hashovací algoritmus, ale z bezpečnostních důvodů zcela nefunkční .
V současné době pomocí crypt
, s CRYPT_BLOWFISH je nejlepší postup.
CRYPT_BLOWFISH v PHP je implementace Bcrypt hashe. Bcrypt je založen na blokové šifře Blowfish a využívá své drahé nastavení klíče ke zpomalení algoritmu.
Další informace o schématech ukládání hesel si také můžete přečíst Jeff Příspěvek na blogu o tom:Pravděpodobně ukládáte hesla nesprávně