关于加密:使用多个密码解密

decrypt with more than one password

我正在寻找加密我的数据的特定方法。我想用我的密码加密它,然后用它解密。稍后,我想让其他人用他们的密码访问我选择的数据部分。

除了每次添加一个新的"读卡器"并用所有密码的"混合"再次加密数据之外,还有其他方法吗?更重要的问题是如何在不知道每个人密码的情况下解密?

比我想到的另一个问题。如何验证给定/登录密码是否正确?我认为在不保存实际密码或加密密码的情况下,以下内容可能有效:

  • 得到一个密码;"那是一个非常糟糕的密码"
  • 使用hash作为加密和解密密钥;hash(salt+"这是一个非常糟糕的密码")。
  • 将哈希保存为密码验证;哈希(hash(salt+"这是一个非常糟糕的密码"))

你觉得怎么样?

谢谢大家的帮助


  • 使用安全密钥(如随机字节)对数据加密一次。

  • 对于每个用户,使用用户的密码(正确扩展)加密上述密钥,将其保存在用户ID下的文件或数据库中,并保存一个用于身份验证的salt/hashed密码。

  • 要访问查找用户条目,请使用salt/散列密码验证提供的密码,使用用户密码解密数据密钥。

  • 用数据密钥解密数据并返回给用户。

  • 优点:用户的密码可以在不更改数据加密所用的实际密钥的情况下更改。

  • 第二部分:

    不要在用户提供的加密密钥密码上使用密码扩展方法,如pbkdf2。这种方法需要一个salt和一个密码,并反复多次,以使操作变慢,大约100毫秒是一个很好的目标。

    散列除了为操作添加少量时间外,不会完成任何其他操作。