在数据库中存储密码的最佳方法是什么?我需要解除连接?

时间:2017-11-27 17:40:42

标签: hash passwords password-encryption

是的,我知道这可能完全不安全,但我需要这样做。我需要将密码存储到另一个站点上的用户帐户。什么是最安全的哈希方法,然后在我需要使用它时解除它?当它登录到另一个帐户时,它们不会在网站上,因此没有机会让他们输入密码。感谢。

1 个答案:

答案 0 :(得分:0)

你排除了几乎所有安全的解决方案。

您可以获得的最佳情况是,当其他网站提供OAuth2身份验证时,您可以使用令牌交换用户名/密码,并将此令牌保留在您的数据库中(而不是密码)。

下一个最好的方法是要求使用主密码来访问您的服务,并使用它来加密帐户密码。用户在使用您的服务之前输入密码,密码将根本不存储。您写道这是不可能的,但也许您可以将主密码保存在内存中而不是将其写入数据库?

作为最后的手段,您可以在存储密码之前加密密码。此方法无法安全,因为系统必须能够解密密码,攻击者才能解密(密钥必须可访问)。它仍然比存储密码明文好一点。建议使用AES-256-GCM等经过身份验证的加密。硬件HSM解决方案可以改善这种情况。