Hashing delle password: bcrypt, scrypt, Argon2
Un database rubato non deve rivelare le password. La difesa è un hash progettato per essere lento, con salt unico per utente.
Perché non SHA-256
SHA e MD5 sono veloci: una GPU prova miliardi di hash al secondo, e un dizionario cade in minuti. Servono funzioni deliberatamente costose in tempo e memoria.
// PHP: sceglie e aggiorna l'algoritmo da solo
$hash = password_hash($pw, PASSWORD_ARGON2ID);
if (password_verify($pw, $hash)) { /* ok */ }Quale
Argon2id è la scelta moderna: costo in memoria che ostacola le GPU/ASIC. scrypt simile. bcrypt ancora accettabile (attento al limite di 72 byte). Il salt lo gestiscono loro; non serve un pepe separato se i parametri sono adeguati. Rialza il costo col tempo.