java - 使用什么内置 Java 哈希函数作为密码

标签 java security hash

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

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

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

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

最佳答案

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

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

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

祝你好运!

关于java - 使用什么内置 Java 哈希函数作为密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16946125/

相关文章:

java - OpenJPA:如何构建具有组计数的 GROUP BY 查询

设置日期为 30/12 或 31/12 时的 Java 日历错误

javascript - 仅使用 JavaScript 检查文件是否存在于本地

Ruby:如何检查变量是否存在于哈希定义中

php - php5.3.0中sha256的使用方法

java - mac上Eclipse安装报错(JVM不兼容)

Python:使用 chroot 和 chjail 保护不受信任的脚本/子进程?

c - 使用 fgets() 对 C 程序进行利用

database - 如何根据散列中的键/值查找键/值数据并将其添加到 Redis 中的散列?

java - javax.inject.Singleton 和 javax.ejb.Singleton 的区别