gpt4 book ai didi

java - ZIP 目录 AES 加密

转载 作者:行者123 更新时间:2023-12-01 04:45:46 25 4
gpt4 key购买 nike

是否可以加密包含目录但不包含文件的 zip 文件?或者如果这是不可能的,那么加密目录本身怎么样?

我有一个带有子目录的目录。我需要对其进行加密。我读到一个建议,先压缩它,然后加密 zip 文件。

我也不想要加密文件的压缩包。以防万一有人会建议它。我确实需要对其目录或 zip 文件进行加密。或者这是唯一可能的方法?

我如何知道我的文件已被加密?

我的程序是用java编写的。并在android中得到应用。

非常感谢您的投入。

最佳答案

据我所知,ZIP 规范允许对每个文件的内容进行加密,并且理论上每个文件都有一个单独的密码。

如果你想加密一个目录及其下面的所有文件,那么你需要对该目录进行归档并对归档文件进行加密。目录不被视为可加密项目,因为它只是一个占位符 - 与目录相关的所有信息都是 zip 条目属性的一部分,并且不可加密,因为只有文件的内容被加密(这是根据zip 规范)。

要确定文件是否已加密,您可以尝试使用 zip 工具解压而不指定密码。程序应提示输入加密文件的密码。 注意截至撰写本文时,没有任何 info-zip 工具支持 AES 加密,因此您可能无法使用此方法测试提取文件。

使用 zipinfo 查看“状态”列,如果全部大写,则它已加密(良好的经验法则):

host:~/bin% zip hello.zip radio    
updating: radio (deflated 30%)
host:~/bin% zipinfo hello.zip
Archive: hello.zip 307 bytes 1 file
-rwxr-xr-x 3.0 unx 211 tx defN 9-Jun-09 11:33 radio
1 file, 211 bytes uncompressed, 147 bytes compressed: 30.3%

请注意小写的 tx 表示不受密码保护的条目

host:~/bin% zip -P fred hello.zip radio
adding: radio (deflated 30%)
host:~/bin% zipinfo hello.zip
Archive: hello.zip 335 bytes 1 file
-rwxr-xr-x 3.0 unx 211 TX defN 9-Jun-09 11:33 radio
1 file, 211 bytes uncompressed, 147 bytes compressed: 30.3%

请注意密码保护条目的大写 TX

jar 工具生成令人敬畏的消息 (ymmv):

host:~/bin% zip -P fred hello.zip radio
updating: radio (deflated 30%)
host:~/bin% jar tvf hello.zip
java.util.zip.ZipException: invalid CEN header (encrypted entry)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:214)
at java.util.zip.ZipFile.<init>(ZipFile.java:144)
at java.util.zip.ZipFile.<init>(ZipFile.java:115)
at sun.tools.jar.Main.list(Main.java:1004)
at sun.tools.jar.Main.run(Main.java:245)
at sun.tools.jar.Main.main(Main.java:1177)

关于java - ZIP 目录 AES 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15877705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com