我想创建受密码保护的 ZIP:
// Set the compression level
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
// Set the encryption flag to true
// If this is set to false, then the rest of encryption properties are ignored
parameters.setEncryptFiles(true);
// Set the encryption method to Standard Zip Encryption
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);
// Set password
parameters.setPassword(password);
但这只是加密 zip 内的文件,但我可以打开此 zip 并查看其中的文件。这不是我想要的,我想让 zip 密码受到保护,而不是其中的文件。
最佳答案
不可能,抱歉。
这样的文件不符合 .ZIP 文件格式规范。它指出,虽然实际文件已加密,但元数据(包括文件名和大小)未加密。这一直是争论的话题,但事实就是如此。它的用途之一是您得到不错的“密码不正确”而不是垃圾文件。
无论哪种方式 - 不要依赖 .zip 文件加密。这很不好。不,真的 - 这非常非常糟糕。它容易受到大量攻击。
如果您想要一个正确加密的 .zip 文件 - 就这样做吧。制作一个 .zip 文件,然后使用适当的加密来制作一个加密文件。 Java 对此有相当多的加密工具。
关于java - 密码保护的 zip 文件不是 zip 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27402135/