php - 什么是合适的 PBKDF2 设置?

标签 php security hash passwords pbkdf2

我有一些关于什么是适当的 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/

相关文章:

asp.net - 设置 "location.hash"无法与IE中的部分页面回发一起使用。它适用于火狐浏览器

ruby - 关联数组(或哈希)php 到 ruby

arrays - 如何在 Ruby 中将单字符串数组解析为哈希值?

php - Symfony2 JSON 示例

php - javascript可逆伪散列

rest - 与 Web API 服务通信的 html/knockout js 应用程序中的身份验证

JavaScript : Hosting User Images in S3 Bucket For Application

php - 输入 html 的月份不允许从数据库获取动态日期?

php - Symfony2 - 在 PHP 模板中使用 CSS 资源

php - 将 if/else PHP 重定向添加到 Wordpress 中的页面模板