Encryption 使用2个密码加密要访问的文件

Encryption 使用2个密码加密要访问的文件,encryption,Encryption,我想加密一个文件,但可以使用两个密码之一访问它 下面是我的使用案例:我正在编写一个程序,允许用户拥有多个文件,所有文件都经过加密,并且可以通过一个“私有”密码访问。对于每个文件,用户可以创建一个单独的“共享”密码(每个文件不同),然后他们可以共享该密码,以便其他人访问该文件。基本上,每个文件都可以使用两个密码中的任意一个进行解密 作为安全要求,软件不会存储任何一个密码,也不会存储这些密码的哈希值。这意味着我不能组合密码或哈希;它们必须彼此独立使用 是否有一种加密算法或方法可以用来实现这种行为?我

我想加密一个文件,但可以使用两个密码之一访问它

下面是我的使用案例:我正在编写一个程序,允许用户拥有多个文件,所有文件都经过加密,并且可以通过一个“私有”密码访问。对于每个文件,用户可以创建一个单独的“共享”密码(每个文件不同),然后他们可以共享该密码,以便其他人访问该文件。基本上,每个文件都可以使用两个密码中的任意一个进行解密

作为安全要求,软件不会存储任何一个密码,也不会存储这些密码的哈希值。这意味着我不能组合密码或哈希;它们必须彼此独立使用


是否有一种加密算法或方法可以用来实现这种行为?我不打算重新实现加密算法,因此如果我能确定要查找的适当算法,我将寻找一个开源实现。

生成一个密钥,您可以使用该密钥对文件进行加密。然后在文件中放置两个加密版本的密钥,使用每个密码进行加密。这样,如果您知道其中一个密码,就可以对文件进行解密。

这可能属于不包括实现问题的有关加密的问题,因为这些问题与堆栈溢出无关。你可以考虑把这个贴在上面。你可能还想考虑。这个问题是,没有人阻止使用共享密码来获取文件被加密的根密钥。即使共享密码被“撤销”(通过删除加密的共享密码密钥),攻击者仍然可以使用共享密码获得的根密钥解密文件。如果op可以接受这一点,那么使用两个不同的密码对文件进行两次(分别)加密将比创建这样的方案更容易。什么是共享密码?两个不同的密码允许解密为此文件生成的密钥。这是许多产品使用的一种常见方案——pgp出现在脑海中。Op定义了“私有”密码和“共享”密码。与其他人共享。不过,经过进一步考虑,我认为这是一个合理的解决办法。我想补充的是,op在修改和重新加密文件时,应该注意不要对文件重复使用相同的根密钥。