我的功能如下:
pbkdf2($raw_pw,$salt,1000,128)
1000是遍数,和128是关键的尺寸。 该函数返回,我用的base64将其存储在数据库中的二进制关键。
我的问题是:什么是使用SHA512 PBKDF2推荐的密钥大小和盐大小?
会的32密钥长度是一样的128密钥长度为安全?
我的功能如下:
pbkdf2($raw_pw,$salt,1000,128)
1000是遍数,和128是关键的尺寸。 该函数返回,我用的base64将其存储在数据库中的二进制关键。
我的问题是:什么是使用SHA512 PBKDF2推荐的密钥大小和盐大小?
会的32密钥长度是一样的128密钥长度为安全?
1000是迭代的次数,而不是通过。 128是在端部的长度。
根据维基百科http://en.wikipedia.org/wiki/PBKDF2和有关加密自己的小知识(如你问或32),你应该使用更然后128字节。 结果密钥的大小相当于一个哈希冲突的机会。 使用256(如WPA2一样)或512不应该是一个问题,也不会为你的CPU /内存/任何问题。
另外1000是相比PBKDF2的其他集成,迭代的一个非常小的量。 您可以轻松地使用5000或10000(如iOS4的),这可能会导致像10ms的更多的处理时间,但打法更强键(见:一个可能的攻击者还可以运行10K迭代这可能会改变,他从所需要的时间1天至10天,或1个月至将近1年)。