我想创建一个成员(member)网站,所以我想让密码尽可能安全。我可以从包括这个在内的阅读网站看到 md5、sh1 加密是一个严重的否定。我见过一些其他的东西,比如 bcript、scrypt、sha256、sha512 和 PBKDF2。我发现了一些实现这些的 php 脚本,但没有真正发现与数据库有关的任何注意事项。
我是否必须创建包含盐的行?
验证密码是否必须执行类似 hash(salt+password) = $hash 的操作?
因为我在密码方面不是最有经验的,所以我不太确定最佳实践,当您对密码进行哈希处理 + salt 时会发生什么,如何检索密码...
我想是因为我不太了解它背后的逻辑,所以我对如何去做感到有点困惑。
最佳答案
如果您使用 Bcrypt、Scrypt 或 PBKDF2,盐是您获得的散列的一部分,所以不,您不必担心单独存储它。否则 (SHA-*),是的 — 但是您无论如何都不应该使用它们。 Bcrypt、Scrypt 和 PBKDF2 是实际的密码散列函数。
我推荐 Bcrypt,因为你标记了这个 php .它是内置的。 Scrypt 不是。
关于php - 加盐密码,特别是关于数据库和检索密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13902580/