这是PBKDF2的java实现,一个很好的实现?已是最新?

时间:2014-07-31 10:13:44

标签: java passwords pbkdf2

这是PBKDF2的一个很好的实现吗? https://crackstation.net/hashing-security.htm#javasourcecode

我不确定存储密码是个好主意,例如: pass = PBKDF2_ITERATIONS + ":" + toHex(salt) + ":" + toHex(hash);

还有其他一些实施吗?

1 个答案:

答案 0 :(得分:0)

基于保密的密码术从不在任何可测量的持续时间内工作。

当实施像PBKDF#2这样的KDF时,“公共”允许知道某些参数,因为它们对于正确使用是必不可少的。在您返回的密码中隐晦并不能阻止攻击者持续任何可测量的持续时间,因为您 认为他们可以轻松地对您的软件进行逆向工程(如果他们要去的话,那就让我们面对它吧)反对PBKDF#2,他们可能会这样做。

不包括任何地方的迭代计数就像不包括salt或hash一样,同时,迭代计数的值与salt和hash一样安全。并且研究攻击者可以对你的代码进行逆向工程的冒号,结肠或没有结肠不是他们的方式障碍,他们最终会发现

关于Java的PBKDF#2是否“好”,我无法提供任何可靠的事实。但考虑到它是java加密库中最重要的加密函数之一,我认为它是java中可能的最佳实现之一(不考虑使用硬件加速本机代码的第三方库,这就是作弊)。 p>