我正在寻找加密数据的特定方法。 我想用我的密码加密它并用它解密。 后来我想让其他人用他们的密码访问我选择的数据部分。
除了每次添加新的“阅读器”并使用所有密码的“混合”再次对其进行加密时,还有其他方法来解密数据吗? 而最重要的问题是如何在不知道每个人的密码的情况下解密?
而不是我想到的另一个问题。如何验证给定/登录密码是否正确? 我认为以下可能无法保存实际密码或加密密码:
你怎么看?
感谢大家的帮助
答案 0 :(得分:1)
使用随机字节等安全密钥对数据进行一次加密。
对于每个用户使用用户密码加密上述密钥(正确扩展),将其保存在userID下的文件或数据库中,并使用salted / hashed密码进行身份验证。
< / LI>要访问查询,用户的条目会使用salted / hashed密码验证提供的密码,并使用用户密码解密数据密钥。
使用数据密钥解密数据并返回给用户。
副作用:可以更改用户的密码,而无需更改数据加密的实际密钥。
第二部分:
不要hash(hash(salt + "Thats an amazingly bad password"))
,在用户提供的加密密钥密码上使用密码扩展方法,如PBKDF2。这样的方法需要盐和密码并重复多次以使操作变慢,大约100ms左右似乎是一个很好的目标。