PBKDF2建议的密钥大小?

use*_*449 2 php mysql security sha pbkdf2

我的功能如下:

pbkdf2($raw_pw,$salt,1000,128)
Run Code Online (Sandbox Code Playgroud)

1000是通过次数,而128是密钥大小。该函数返回一个二进制密钥,我使用base64将其存储在数据库中。

我的问题是:使用sha512的pbkdf2建议使用的密钥大小和盐大小是多少?

32的密钥大小是否与128的密钥大小一样安全?

小智 6

1000是迭代次数,而不是通过次数。128是末尾的长度。

根据维基百科(以及我自己对密码学的一点了解),您应该使用128位以上(或32位)。生成的密钥的大小等于发生哈希冲突的机会。使用256(就像WPA2一样)或512应该不是问题,对于您的CPU /内存/其他也不是问题。

与pbkdf2的其他集成相比,也有1000个非常小的迭代。您可以轻松地使用5000或10000(如iOS4),这可能会导致处理时间增加10毫秒左右,但使密钥更有效(请参阅:可能的攻击者还必须运行10k迭代。这可能会改变他所需的时间) 1天至10天,或1个月至近1年)。