存储加密密码和盐或仅存储加密密码?

时间:2010-09-14 09:42:12

标签: database security

我需要一个登录系统来检查用户密码。 我知道有关密码的问题,但是我应该存储盐和加密的密码,还是应该只存储加密的密码,而盐是在我的应用配置文件中的某个位置?

如果有一些请帮助和弊,谢谢!

2 个答案:

答案 0 :(得分:1)

如果每个密码都有不同的盐,那么您必须在DB本身中存储salt和哈希密码。如果您只对所有密码使用一个盐,那么您可以更喜欢将它们存储在其他位置类型的配置文件中。

答案 1 :(得分:1)

这取决于您如何使用salt进行加密......

如果盐不经常变化
我会将盐与主密钥一起存放在安全的位置。将它与每个密码一起存储只会构成大量冗余数据。此外,数据库可能不像主密钥的存储位置那样安全。请注意,盐可能是密码安全的重要组成部分。 (取决于用户选择的密码的长度和强度......)

如果盐频繁更改,即每个加密密码:
在这种情况下,您需要存储大量的盐。因为一个盐只对解密一个密码有用,所以它不像上面的例子中那样重要,如果将它与密码一起存储在数据库中就可以了。无论如何,将盐存储在app配置中可能会变得混乱。 (除非你要创建一个特殊的盐数据库或类似的东西。)