是否可以加密包含目录但不包含文件的 zip 文件?或者如果这是不可能的,如何加密目录本身?
我有一个带有子目录的目录。我需要加密它。我读了一个建议先压缩它然后加密压缩文件。
我也不想要一个压缩文件的压缩包。以防万一有人建议。我真的需要加密目录或它的 zip 文件。还是这是唯一可能的方法?
我怎么知道我的文件已被加密?
我的程序是用java编写的。并在android中应用。
非常感谢您的意见。
是否可以加密包含目录但不包含文件的 zip 文件?或者如果这是不可能的,如何加密目录本身?
我有一个带有子目录的目录。我需要加密它。我读了一个建议先压缩它然后加密压缩文件。
我也不想要一个压缩文件的压缩包。以防万一有人建议。我真的需要加密目录或它的 zip 文件。还是这是唯一可能的方法?
我怎么知道我的文件已被加密?
我的程序是用java编写的。并在android中应用。
非常感谢您的意见。
据我所知,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)