使用多个密码解密

时间:2016-04-04 09:44:29

标签: encryption hash cryptography passwords

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

除了每次添加新的“阅读器”并使用所有密码的“混合”再次对其进行加密时,还有其他方法来解密数据吗? 而最重要的问题是如何在不知道每个人的密码的情况下解密?

而不是我想到的另一个问题。如何验证给定/登录密码是否正确? 我认为以下可能无法保存实际密码或加密密码:

  • 获取密码; “这是一个非常糟糕的密码”
  • 使用哈希作为加密和解密密钥;哈希(盐+“这是一个非常糟糕的密码”)
  • 将哈希哈希保存为密码验证; hash(hash(盐+“这是一个非常糟糕的密码”))

你怎么看?

感谢大家的帮助

1 个答案:

答案 0 :(得分:1)

  1. 使用随机字节等安全密钥对数据进行一次加密。

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

    < / LI>
  3. 要访问查询,用户的条目会使用salted / hashed密码验证提供的密码,并使用用户密码解密数据密钥。

  4. 使用数据密钥解密数据并返回给用户。

  5. 副作用:可以更改用户的密码,而无需更改数据加密的实际密钥。

  6. 第二部分:

    不要hash(hash(salt + "Thats an amazingly bad password")),在用户提供的加密密钥密码上使用密码扩展方法,如PBKDF2。这样的方法需要盐和密码并重复多次以使操作变慢,大约100ms左右似乎是一个很好的目标。

    除了为操作添加一些微不足道的时间之外,散列散列并不能完成任何事情。