2

我制作了一个在 JAVA 中加密和存储文件的应用程序。
我有很多使用 AES 加密的文件。
我有四个访问级别和四个密钥,我想用访问级别特定的密钥加密每个文件;我需要更改 KEY 以使用户能够更改文件的访问级别。
是否可以仅通过提供以前的密钥而不解密文件然后重新加密它们来更改此密钥?

4

3 回答 3

4

不,这是不可能的。您必须重新加密您的文件。

于 2012-08-10T15:53:41.377 回答
4

好吧,也许您可​​以拥有加密文件的常量密钥,该密钥将再次加密,您可以更改密钥?这样,只有必须再次解密和加密的东西才是您的密钥:)

这并不适用于每种情况,但有些地方应该可以解决问题。

于 2012-08-10T15:58:20.970 回答
2

一种方法是使用该“级别”的主密钥直接加密每个文件 - 相反,为每个文件生成一个不同的随机“文件密钥”并用它加密文件。然后,您使用级别密钥加密文件密钥,并将结果与​​文件一起存储。

当你想改变一个文件的级别时,你只需要对文件密钥进行解密和重新加密,而不是整个文件本身。

于 2012-08-20T07:48:06.970 回答