安全的网站密码存储

时间:2011-07-29 12:10:42

标签: password-storage

我见过很多关于使用salt和hashes来创建可以存储在数据库中的安全密码版本的帖子。

然而,有一个问题令我感到困惑,我看不出问题所以我想我会在这里发布问题,看看其他人是否可以指出这个想法中的任何缺陷。

我的基本想法是生成公钥​​/私钥对,然后销毁私钥。我对公钥/私钥加密的有限理解是,如果我没有私钥,那么解密用公钥加密的邮件是“在数学上不可能的”。

我会使用公钥加密密码,然后将加密版本存储在数据库中。当有人尝试登录时,我只是使用公钥加密密码,看看它是否与存储的密码匹配?

这个想法有一些可怕的缺陷吗?盐和哈希会更加安全吗?

2 个答案:

答案 0 :(得分:1)

这种方法的问题在于,与散列函数不同,加密函数的输出通常是不确定的:您可以使用相同的公钥加密相同的有效负载两次,并且加密算法每次都会产生完全不同的密文。例如,RSA加密将随机填充结合到输入中以防御某些类型的攻击。<​​/ p>

相比之下,加密哈希的输出是确定性的,这可以用于需要此属性的密码存储等问题。

答案 1 :(得分:0)

您已经有效地描述了哈希部分 - 考虑两个人共享相同密码的情况 - 使用您的基本方法,存储的值将是相同的。因此,如果您发现哈希算法和字典攻击它,您可以生成密码 - &gt;哈希值表,并立即查找每个人的可能密码。

毕竟,如果黑客得到你的桌子,他们也可能得到你的代码......