La funzione Bun.password.hash() fornisce un meccanismo integrato veloce e sicuro per hashare le password in Bun. Non sono necessarie dipendenze di terze parti.
ts
const password = "super-secure-pa$$word";
const hash = await Bun.password.hash(password);
// => $argon2id$v=19$m=65536,t=2,p=1$tFq+9AVr1bfPxQdh6E8DQRhEXg/M/...Per impostazione predefinita, questo usa l'algoritmo Argon2id. Passa un secondo argomento a Bun.password.hash() per usare un algoritmo diverso o configurare i parametri di hashing.
ts
const password = "super-secure-pa$$word";
// usa argon2 (predefinito)
const argonHash = await Bun.password.hash(password, {
memoryCost: 4, // uso memoria in kibibyte
timeCost: 3, // numero di iterazioni
});Bun implementa anche l'algoritmo bcrypt. Specifica algorithm: "bcrypt" per usarlo.
ts
// usa bcrypt
const bcryptHash = await Bun.password.hash(password, {
algorithm: "bcrypt",
cost: 4, // numero tra 4-31
});Usa Bun.password.verify() per verificare una password. L'algoritmo e i suoi parametri sono memorizzati nell'hash stesso, quindi non è necessario specificare nuovamente la configurazione.
ts
const password = "super-secure-pa$$word";
const hash = await Bun.password.hash(password);
const isMatch = await Bun.password.verify(password, hash);
// => trueVedi Docs > API > Hashing per la documentazione completa.