我需要一个登录系统来检查用户密码。 我知道有关密码的问题,但是我应该存储盐和加密的密码,还是应该只存储加密的密码,而盐是在我的应用配置文件中的某个位置?
如果有一些请帮助和弊,谢谢!
答案 0 :(得分:1)
如果每个密码都有不同的盐,那么您必须在DB本身中存储salt和哈希密码。如果您只对所有密码使用一个盐,那么您可以更喜欢将它们存储在其他位置类型的配置文件中。
答案 1 :(得分:1)
这取决于您如何使用salt进行加密......
如果盐不经常变化:
我会将盐与主密钥一起存放在安全的位置。将它与每个密码一起存储只会构成大量冗余数据。此外,数据库可能不像主密钥的存储位置那样安全。请注意,盐可能是密码安全的重要组成部分。 (取决于用户选择的密码的长度和强度......)
如果盐频繁更改,即每个加密密码:
在这种情况下,您需要存储大量的盐。因为一个盐只对解密一个密码有用,所以它不像上面的例子中那样重要,如果将它与密码一起存储在数据库中就可以了。无论如何,将盐存储在app配置中可能会变得混乱。 (除非你要创建一个特殊的盐数据库或类似的东西。)