如何从多个密码生成公共哈希?

时间:2009-08-05 08:49:47

标签: security authentication encryption cryptography passwords

我有一个应用程序可以生成用户密码的哈希值,然后我用它来加密数据。我想将此扩展到这样的情况:在有足够的数据生成该哈希之前,任何2个用户中的任何一个需要对应用程序进行身份验证。

我遇到的问题是,无论5个用户中的哪2个用户进行身份验证,我都需要生成完全相同的哈希值 - 因为我只使用一个哈希加密。

我的主要目标是尽可能保证安全,所以如果还有其他方法可以做同样的事情,请随意提及。我只需要在需要的地方更改代码。

1 个答案:

答案 0 :(得分:9)

生成随机密钥,使用从每对(password1,password2),(password1,password3),(password1,password4),(password1,password5),(password2,password3)等派生的密钥对其进行加密。然后存储这十个加密中的每一个,这样当你交出两个任意密码时,你就可以看到正确的加密。

或者,不是存储所有这些对,而是使用(2,5) - 秘密共享方案(fx Shamir's)来分割随机密钥,然后存储用密钥导出的5个秘密中的每个密钥。来自每个密码。