是否可以加密包含目录的zip文件,而不加密文件?或者如果这是不可能的,那么如何加密目录本身呢?
我有一个带有子目录的目录。我需要加密它。我读了一份建议,建议先将其压缩,然后加密zip文件。
我也不想要一堆加密的文件。以防万一有人提出建议。我真的需要它的目录或压缩文件被加密。或者这是唯一可能的方法?
我怎么知道我的文件被加密了?
我的程序是用java编写的。并被应用在android系统中。
非常感谢您的投入。
发布于 2013-04-08 14:33:22
据我所知,ZIP规范允许对每个文件的内容进行加密,理论上每个文件都有一个单独的密码。
如果您想加密一个目录和它下面的所有文件,那么您需要对目录进行存档和加密。目录不被视为可加密的项,因为它只是一个位置持有者-所有与目录相关的信息都是zip条目属性的一部分,而不是可加密的,因为只有文件的内容是加密的(这是根据zip规范)。
若要确定文件是否已加密,可以尝试使用zip工具进行解压缩,而无需指定密码。程序应提示输入加密文件的密码。在撰写本文时,Note没有一种信息压缩工具支持AES加密,因此您可能无法使用此方法测试解压缩文件。
使用zipinfo查看“status”列,如果它都是大写的,那么它是加密的(很好的经验规则):
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)https://stackoverflow.com/questions/15877705
复制相似问题