java 更新用户时是否保护密码?

lsmepo6l  于 2023-03-11  发布在  Java
关注(0)|答案(1)|浏览(104)

在我开发的Spring应用程序中,我不向视图返回密码数据,但在更新用户时,我需要返回密码数据,以便在用户不更改密码的情况下表单包含相同的密码。
然而,在这种情况下,密码被发送到视图,如果它没有改变,这意味着密码传递到视图是不必要的。而不是这样,我只是想返回一个假密码到视图,然后检查更新表单,用户提交更新用户。如果用户提交的密码是相同的假的,那么没有必要更新。如果不是,然后更新与提交的字段。
这可能是好的或不好的,但我想可能有人已经想到了类似的事情,可能会有一个更好的方法来保护密码数据,同时更新用户,也许没有必要将当前密码传递到视图(前端)。
那么,我应该如何更新用户,同时保护密码值?任何示例场景请(只是解释,不需要代码)。

dzhpxtsq

dzhpxtsq1#

1)用户创建帐户时:

  • 无论用户输入什么密码,都要使用密钥对其进行散列。例如,如果密码为123456,则散列值可能为Hwfu56#739==
  • 将此散列值存储在数据库中
    2)用户将来登录其帐户时。
  • 再次转换他们输入的密码与相同的机制。
  • 将此值与DB中保存的值进行比较
  • 基于此授予访问权限。
    3)用户要更改密码时。
  • 与上面的想法相同,总是将输入的内容转换为散列(并在UI上屏蔽)并进行比较

有一件事要记住,无论在什么情况下,散列都应该是你要做的第一件事,纯文本的密码不应该在任何地方使用,也不应该通过http发送,甚至不应该存储在虚拟内存中。

相关问题