我有一些关于什么是合适的PBKDF2设置的问题。我用谷歌搜索答案,大多空手而归。
基本上,我想知道输入pbkdf2.php(找到here)的适当值是什么,考虑到2012年的技术状态。什么能让我合理地期望我编码的密码不会未来几年可以被非政府实体破解吗?
以下是我正在考虑的事项:
define("PBKDF2_HASH_ALGORITHM", "sha512");
define("PBKDF2_ITERATIONS", 20000);
define("PBKDF2_SALT_BYTES", 512);
define("PBKDF2_HASH_BYTES", 512);
我知道还有许多其他因素可以创造良好的安全性。以下是我正在使用的其他安全措施的概要:
我错过了什么吗?
答案 0 :(得分:2)
举个例子,大多数现代Linux发行版中的sha512crypt的默认设置(/ etc / shadow条目中的$ 6 $)使用5000次迭代和16个字节的salt。那很慢。但是当谈到哈希时,我不会批评你的过度杀伤;)
答案 1 :(得分:0)
这个问题没有一个正确的答案,因为不同的应用程序需要不同级别的安全性。正确的做法是对您的应用程序进行基准测试,并使用尽可能高的设置,因为您的服务器可以以响应的方式轻松处理。 (当然,在负载测试下)
通过首先实施PBKDF2而不是像“快速”,“消息摘要”一样的算法,例如MD5或SHA-1,你已经比普通系统安全得多。