【问题标题】:How do I generate a common hash from multiple passwords?如何从多个密码生成公共哈希?
【发布时间】:2010-11-16 22:42:58
【问题描述】:

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

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

我的主要目标是使其尽可能安全,因此如果有其他方法可以做同样的事情,请随时提及这些。我会在需要的地方更改代码。

【问题讨论】:

    标签: security authentication encryption cryptography passwords


    【解决方案1】:

    生成一个随机密钥,用从每一对(password1,password2),(password1,password3),(password1,password4),(password1,password5),(password2,password3)等派生的密钥加密它。然后存储这十种加密中的每一种,以便在收到两个任意密码时可以查找正确的一种。

    或者,不是存储所有这些对,而是使用 (2,5)-秘密共享方案 (fx Shamir's) 拆分随机密钥,然后存储使用从每个密钥派生的密钥加密的 5 个密钥中的每一个的密码。

    【讨论】:

    • “秘密分享”一词是我缺少的部分。沙米尔的计划似乎非常适合我。谢谢。
    • 当涉及到 2-of-5 时,所描述的方案简单而有效。显然它不能很好地扩展,但对于这个系统来说这是一个好主意。 :)
    • Shamir 的解决方案仍然应该比运行密码排列更明智 - 特别是对于扩展。当有人决定我们现在需要 10 个有密码的人时,我不想做排列:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 2021-05-14
    • 2011-08-09
    • 2016-02-06
    • 2015-05-12
    • 1970-01-01
    • 2017-03-14
    相关资源
    最近更新 更多