繁体   English   中英

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

[英]Best way to store multiple passwords into Database

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

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

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

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

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

  • 保存用户全文密码并进行转换(大)

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

  • 您的选择在这里...

谁能帮我?

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

  • 保存纯文本密码-好主意,算了吧。
  • 如果将其另存为Database4中的PasswordMD4,则其安全性仅次于PC4。
  • 保存在其他表中-与以前的版本没有什么不同。
  • Spring安全性-不知道如何在这里应用。

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

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

而且不要使用NTLM v1,因为它太旧而且不安全。

暂无
暂无

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

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