Bun.password.hash()
函数提供了一种快速内置机制,用于在 Bun 中安全地哈希密码。无需第三方依赖项。
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/...
默认情况下,这使用 Argon2id 算法。将第二个参数传递给 Bun.password.hash()
以使用不同的算法或配置哈希参数。
const password = "super-secure-pa$$word";
// use argon2 (default)
const argonHash = await Bun.password.hash(password, {
memoryCost: 4, // memory usage in kibibytes
timeCost: 3, // the number of iterations
});
Bun 还实现了 bcrypt 算法。指定 algorithm: "bcrypt"
以使用它。
// use bcrypt
const bcryptHash = await Bun.password.hash(password, {
algorithm: "bcrypt",
cost: 4, // number between 4-31
});
使用 Bun.password.verify()
验证密码。算法及其参数存储在哈希本身中,因此无需重新指定配置。
const password = "super-secure-pa$$word";
const hash = await Bun.password.hash(password);
const isMatch = await Bun.password.verify(password, hash);
// => true
有关完整文档,请参阅 文档 > API > 哈希。