decrypt with more than one password
我正在寻找加密我的数据的特定方法。我想用我的密码加密它,然后用它解密。稍后,我想让其他人用他们的密码访问我选择的数据部分。
除了每次添加一个新的"读卡器"并用所有密码的"混合"再次加密数据之外,还有其他方法吗?更重要的问题是如何在不知道每个人密码的情况下解密?
比我想到的另一个问题。如何验证给定/登录密码是否正确?我认为在不保存实际密码或加密密码的情况下,以下内容可能有效:
- 得到一个密码;"那是一个非常糟糕的密码"
- 使用hash作为加密和解密密钥;hash(salt+"这是一个非常糟糕的密码")。
- 将哈希保存为密码验证;哈希(hash(salt+"这是一个非常糟糕的密码"))
你觉得怎么样?
谢谢大家的帮助
使用安全密钥(如随机字节)对数据加密一次。
对于每个用户,使用用户的密码(正确扩展)加密上述密钥,将其保存在用户ID下的文件或数据库中,并保存一个用于身份验证的salt/hashed密码。
要访问查找用户条目,请使用salt/散列密码验证提供的密码,使用用户密码解密数据密钥。
用数据密钥解密数据并返回给用户。
优点:用户的密码可以在不更改数据加密所用的实际密钥的情况下更改。
第二部分:
不要在用户提供的加密密钥密码上使用密码扩展方法,如pbkdf2。这种方法需要一个salt和一个密码,并反复多次,以使操作变慢,大约100毫秒是一个很好的目标。
散列除了为操作添加少量时间外,不会完成任何其他操作。