我用的是铁锈。我需要弄清楚我应该对用户密码施加多长的限制。
我正在使用 bcrypt crate 来散列密码。
我读here那:
BCrypt 哈希密码和秘密有 72 个字符的限制。
然而,不知何故,rust
bcrypt
库甚至能够为更长的密码生成哈希值。例如,以下 105 个字符长的密码也会生成哈希值。
use bcrypt::{DEFAULT_COST, hash};
let hashed = hash("65%&88dd413adb5f4fb4de0ecc01f3a'4'5'65''/$%(908f0321ffdghjgdser4te5y4tregthygrffe4g56gfgdht435hg''32$'21s", DEFAULT_COST);
println!("Hashed: {:?}",hashed);
板条箱的文档没有指定任何限制。
我是不是误会了什么?
这里已经详细讨论了这个问题:
https://security.stackexchange.com/questions/39849/does-bcrypt-have-a-maximum-password-length
答案好像是50/55/56/72,看你问谁了。不过,有关详细信息,请阅读链接后面的答案。
TL;DR: 如果您想安全起见,请使用 50。但是,似乎最多 72 有效。然而,除此之外,图书馆绝对简单地忽略任何进一步的字符.