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

Bel*_*rog 3 security authentication encryption passwords cryptography

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

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

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

Ras*_*ber 9

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

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