Quando ti registri su un sito serio, accade una cosa che forse non immagini: il sito non conserva la tua password. Non la conosce, non può leggerla, non potrebbe rispedirtela nemmeno volendo. Sembra un paradosso, ma è la base della sicurezza degli account. Vediamo come funziona.
Hash non è cifratura
La password non viene "cifrata" (operazione reversibile), ma trasformata con una funzione di hash: un calcolo a senso unico che produce una stringa irriconoscibile e non reversibile. Dall'hash non si può risalire alla password originale.
Perché bcrypt
bcrypt è uno degli algoritmi standard per questo scopo. Ha due qualità chiave: aggiunge un "sale" (un dato casuale unico per ogni utente, così due password uguali producono hash diversi) ed è volutamente lento, per rendere antieconomico provare miliardi di combinazioni.
const hash = await bcrypt.hash(password, 12);
// nel database finisce solo l'hash, mai la password
"Zero-knowledge": il sito non sa la tua password
Al login il sistema applica lo stesso calcolo alla password inserita e confronta gli hash. Se combaciano, sei tu — senza che la password sia mai stata memorizzata in chiaro. È il principio "zero-knowledge".
Cosa significa per te e per i tuoi clienti
Anche nello scenario peggiore — un furto del database — le password restano protette: i ladri trovano solo hash inutilizzabili. È una garanzia di fiducia e conformità non negoziabile. Contattami per progetti gestiti con questi standard.
Leggi anche: password mai in chiaro e confronti a tempo costante.