【发布时间】:2014-04-19 10:01:55
【问题描述】:
我正在 Eclipse 中为 android 编写一个应用程序。我一开始尝试使用 PBKDF2WithHmacSHA1 来散列我的密码,效果很好。但由于 SHA1 的弱点,我决定将其升级为 PBKDF2WithHmacSHA512。但是,eclipse 现在抛出 NoSuchAlgorithmException。
SecretKeyFactory.getInstance("PBKDF2WithHmacSHA512") throws NoSuchAlgorithmException
我按照上面链接中的说明进行操作。但是,上面问题中链接的 java 文件需要 sun.crypto 库,我在 Eclipse 上没有。我也被建议不要使用 Sun 库,而是使用 java 官方库。
我的问题是,是否有在 Eclipse 上使用 PBKDF2WithHmacSHA512 的方法?或者,如果可能的话,有人可以教我如何将其分解为首先执行 PBKDF2 然后是 HmacSHA512 结果的部分吗?
谢谢。
【问题讨论】:
-
“SHA1 中的安全漏洞”
-
对不起,不是安全漏洞,而是与 SHA2 相比的弱点。无论哪种方式,我已经阅读了无数关于使用 SHA256 或 SHA512 而不是 SHA1 的建议。我会编辑我的问题,谢谢。
-
嗯,是的,与 SHA256 和 SHA512 相比,SHA1 较弱,但这确实是相对的...... SHA1 对于很多需求来说足够强大。 MD5 也比 SHA1 弱。
-
无论如何——你看过bouncycastle吗?
-
其实我有。但是我目前正在决定反对它(但仍在争论),因为我只在我的应用程序中使用这种特定算法使用散列一次,所以我不确定是否值得将整个 api 包含到我的应用程序中。如果可能的话,这将是我最后的选择。