1

我想跟进此处发布的问题:

使用多个不同的密钥进行加密?

我已经为我构建的 Web 应用程序实现了 GnuGP 解决方案,但我很快就陷入了可扩展性问题,我不得不承认我有点卡住了。基本上,您确实可以使用多个公钥加密文件,以便所有这些人都可以解密文件。伟大的。但是现在假设你与 100 个人共享这个文件,你是怎么做到的?

我遇到的第一个限制是命令行限制,我不能在一行中放入 100 个公钥。

第二个限制是每次我想添加一个新人或撤销对某人的访问权限时,我都必须使用 101 或 99 个密钥重新加密,这非常耗费时间和 CPU。

第三个限制更糟糕,假设我正在共享一个文件夹,每个新人访问该文件夹都需要与该文件夹的每个文件的所有人重新加密..

所有这一切似乎都很肮脏/骇人听闻..有人会有更好的解决方案吗?

谢谢

4

1 回答 1

1

为每个文件夹创建一个随机的 AES 密钥,并使用它来加密文件,例如使用 AES EAX。然后使用您要授予访问权限的人的公钥加密此密钥。如果您稍后添加一个人,请使用“管理员”私钥解密,然后使用公钥加密密钥。您可以在文件名上使用散列(例如 SHA-256)作为 EAX 密码的初始计数器。

至于命令行工具,您最好对这些东西进行编程(例如,将 GnuPG 本身用于 C/C++ 和相关的以及用于 Java 应用程序的 Bouncy Castle)。

于 2011-12-21T22:36:21.267 回答