繁体   English   中英

如何(加盐和散列)并在 java 中存储密码。然后检查密码是否与用户手动输入匹配

[英]How to (salt and hash) and store a password in java..Then check the password if matches to a user's manual input

所以我用java编写了一个寄存器和一个登录系统。 我的注册计划是:用户输入用户名,然后输入密码。

密码被加盐并存储在 .txt 文件中。 现在,当用户必须输入登录系统的密码时,我如何检索原始密码以从 .txt 文件中检查它,因为它是加盐的?

我的问题有两个:我如何将密码加盐然后存储。 如何找回原来的密码,所以要查一下。

我搜索了很多东西,但我一无所获。

您保存了加盐密码和加盐密码。 因此,在保存密码时,请执行以下操作:

  • 创建一个盐(一定长度的随机散列)
  • 散列密码+盐组合
  • 存储这个散列字符串,但也存储盐和用户名。

不要存储明文密码!

当用户稍后尝试登录时,您可以执行以下操作:

  • 检索散列密码和盐(与用户名一起存储,因此按用户名查找)
  • 散列密码(由想要登录的用户提供)+ salt
  • 将此散列字符串与您存储的散列密码进行比较。
  • 如果它们相等,则用户提供了正确的密码。

因此,您永远不要将用户提供的明文密码与您保存的明文密码进行比较,因为保存明文密码是不安全的,以防这些数据被泄露。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM