【问题标题】:What built-in Java hash function to use for password用于密码的内置 Java 哈希函数
【发布时间】:2013-06-05 17:21:44
【问题描述】:

我正在做一个包含登录/订阅表单的 java 程序的学校项目。

因为它是用于学校的,所以我不应该包含任何第三方库,如 jBcrypt 或其他强大的散列函数。 我考虑使用 java.security.random 的 sha256 为每个用户生成一个盐,但我不知道密码使用什么散列函数。 我不想只使用 sha256/512 的一次迭代,因为它有点弱,我也不想用 sha256/512 的 100 次迭代制作一个 for 循环,因为我猜 bcrypt 和其他人是否存在它是因为迭代 sha 是不够的(也因为我知道尝试自己重新发明密码学总是一个坏主意)。

那么我应该使用什么内置散列函数来存储我的密码?

注意。我知道在这种情况下(学校项目)登录数据不应该得到很好的安全性(我的科目也不需要它)但我想尽可能地做到这一点,所以请不要回答 md5 /sha512 哈希对于这种情况就足够了。

【问题讨论】:

标签: java security hash


【解决方案1】:

我建议你研究一下如何使用 SHA256 和 512 作为密码,注意加盐。

参见例如http://www.jasypt.org/howtoencryptuserpasswords.html

“6. 用 Ja​​va 实现”部分描述了如果您不想使用外部库,您可以用来实现算法的 Java 方法。

祝你好运!

【讨论】:

    【解决方案2】:

    使用 PBKDF2WithHmacSHA1 迭代次数与用户愿意等待的次数一样多。我建议10,000。

    这是相关的:http://en.wikipedia.org/wiki/PBKDF2#BlackBerry_vulnerability

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-10
      • 2017-03-18
      • 2010-09-12
      • 1970-01-01
      • 2012-05-08
      • 2018-03-13
      • 1970-01-01
      相关资源
      最近更新 更多