2012-06-08 95 views
2

My功能如下:PBKDF2推荐的密钥大小?

pbkdf2($raw_pw,$salt,1000,128) 

1000是遍数,和128是关键的尺寸。该函数返回一个二进制密钥,我使用base64将其存储在数据库中。

我的问题是:什么是使用SHA512 PBKDF2推荐的密钥大小和盐大小?

将为32的密钥长度是一样的128密钥大小为安全的?

+0

哎呦。为什么要将派生密钥存储在数据库中?通常这是一个坏主意。 – Cheeso

+3

我将它用作密码哈希 – user962449

回答

4

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年)。