gpt4 book ai didi

java - 如何在 Spring RESTful 登录服务中安全地发送/存储密码

转载 作者:搜寻专家 更新时间:2023-11-01 02:59:11 24 4
gpt4 key购买 nike

在登录服务中,用户将 json 作为有效负载发布到 Spring RESTful 登录服务,如下所示:

{
"username": "john",
"password": "doe"
}

一旦 Spring RESTful 服务收到调用,它会将密码与数据库中以明文形式存储的密码进行比较。

我发现当前实现中存在两个问题。

  1. 密码通过 HTTP 作为纯文本的 POST 负载发送。
  2. 数据库中存储的正确密码为明文。

对于问题 2,我决定使用 bcrypt 来加密存储在数据库中的密码,如 this post 中所述。 . 这样好吗?

对于问题1,我不知道是否有最佳实践。 有人可以分享您的见解吗?谢谢!

编辑:

抱歉,我忘了提及客户端和服务器通过 HTTPS 进行通信。密码在 POST 负载中发送。

这样的话,issue 2(store bcrypted correct password)在数据库中的解决方案就可以了吧?

在问题 1 中,在这种情况下,密码可以以明文形式在 post payload 中发送吗?

最佳答案

  1. 使用 HTTPS。
  2. 密码应该在请求正文中,所以使用 POST。
  3. 发送前不要散列密码。
  4. 将存储在数据库中的哈希与接收到的哈希密码进行比较。

没有理由加密密码。这是个坏主意。它们应该被散列并且最好加盐。万一有人窃取了您的数据库,就更难泄露您用户的密码。

How to securily store passwords.

关于java - 如何在 Spring RESTful 登录服务中安全地发送/存储密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41137761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com