gpt4 book ai didi

java - 将多个密码存储到数据库中的最佳方法

转载 作者:行者123 更新时间:2023-11-30 11:31:34 26 4
gpt4 key购买 nike

在我的数据库中,我有一个用户密码字段 (User.UserPassword),我使用 SHA1 算法对用户输入进行哈希处理,然后用盐对其进行哈希处理。好的,没关系。

但现在我也在对 CIFS 用户进行身份验证。 CIFS 的一种协议(protocol)是 NTLMv1,它为我的 Samba Java 服务器使用 MD4 16 位(非常不安全)。

我无法将 MD4 转换为 SHA1 或比较这些哈希结果。所以,我需要保存两个哈希或比较它们。所以,我可以:

  • 将 MD4 哈希值保存到 User.UserPasswordMD4 中。

  • 将 MD4 哈希保存到其他表中,例如 ExternalAuthenticators

  • 保存用户全文密码并转换(Blargh)

  • Spring Security(我还不知道怎么做)

  • 您的选择在这里...

谁能帮帮我?

最佳答案

看起来您应该将 RC4 哈希存储在某个地方,因为客户端和服务器都应该对挑战字节执行相同的操作,而服务器应该比较结果。

  • 保存纯文本密码 - 坏主意,算了吧。
  • 如果您将其保存为数据库中的 PasswordMD4 - 它不会自行添加比 PC4 更多的安全性。
  • 保存在其他表中 - 与之前的变体没有区别。
  • Spring Security - 不知道如何在这里应用它。

您可以将重要或所有数据库数据存储在加密分区上,但它会稍微降低性能。

我可以建议将 RC4 密码存储到 SHA-1 字段中,但要加密。 3DES 就足够了,也许加点盐。您应该已经在某处为您的 SHA-1 散列加盐了。当您需要 RC4 哈希时,从 DB 中简单解密值,减去(或异或)盐并执行通常的身份验证过程。

并且不要使用 NTLM v1,它既旧又不安全。

关于java - 将多个密码存储到数据库中的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17088321/

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