我有一些关于什么是适当的 PBKDF2 设置的问题。我用谷歌搜索答案,但几乎空手而归。
基本上,我想知道考虑到 2012 年的技术状况,输入 pbkdf2.php(找到 here )的合适值是什么。什么能让我合理地期望我编码的密码不会被黑客攻击 future 几年由非政府实体实现?
这是我正在考虑的:
define("PBKDF2_HASH_ALGORITHM", "sha512");
define("PBKDF2_ITERATIONS", 20000);
define("PBKDF2_SALT_BYTES", 512);
define("PBKDF2_HASH_BYTES", 512);
我知道还有许多其他因素可以发挥作用来创造良好的安全性。以下是我正在使用的其他安全措施的概要:
- 12 位密码,至少包含 2 个数字、2 个字母和两个符号
- 需要每 6 个月更改一次密码
- php mysqli 为所有数据库访问准备了语句
- 我所有表单上的 token
- 错误登录会延迟 5 秒,
- 同一 IP 10 次错误登录后列入黑名单
- 不正确的登录和黑名单会触发相同的响应
- HTTPS
- 我正在使用 session ,并且每 10 页更改一次 session 标识符 在敏感页面上,每次访问该页面时。
我错过了什么吗?
最佳答案
举个例子,大多数现代 Linux 发行版中 sha512crypt 的默认设置(/etc/shadow 条目中的 $6$)使用 5000 次迭代和 16 字节的 salt。这实在是太慢了。但我不会批评你在哈希方面做得太过分了;)
关于php - 什么是合适的 PBKDF2 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12696314/