关于什么是合适的 PBKDF2 设置,我有几个问题。我用谷歌搜索答案,结果大多是空手而归。
基本上,我想知道考虑到 2012 年的技术状况,输入 pbkdf2.php(在此处找到)的合适值是什么。什么会给我一个合理的期望,即我编码的密码不会被非政府实体破解未来几年?
这是我正在考虑的:
define("PBKDF2_HASH_ALGORITHM", "sha512");
define("PBKDF2_ITERATIONS", 20000);
define("PBKDF2_SALT_BYTES", 512);
define("PBKDF2_HASH_BYTES", 512);
我知道还有许多其他因素可以发挥作用来创造良好的安全性。以下是我正在使用的其他安全措施的概要:
- 12位密码,至少有2个数字、2个字母和2个符号
- 要求每 6 个月更改一次密码
- php mysqli 为所有数据库访问准备语句
- 我所有表格上的标记
- 错误登录延迟 5 秒,
- 同一 IP 10 次错误登录后列入黑名单
- 不正确的登录和黑名单触发相同的响应
- HTTPS
- 我正在使用会话,每次访问页面时,我都会每 10 页和敏感页面上更改会话标识符。
我错过了什么吗?