1

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

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

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

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

4

2 回答 2

1

我建议你学习如何使用 SHA256 和 512 作为密码,注意加盐。

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

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

祝你好运!

于 2013-06-05T17:37:05.060 回答
0

使用 PBKDF2WithHmacSHA1 和用户愿意等待的尽可能多的迭代。我建议10,000。

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

于 2013-06-05T17:39:58.247 回答