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.