在 Java 中创建受密码保护的 zip 文件,而无需在磁盘上创建它

我需要创建一个 zip 文件。它应该受到密码保护。我正在使用林加拉罐子。这是我的下面。有办法做到吗?我什至尝试过 zipoutstream,但找不到添加密码的方法。


@Component

public class FileZipUtils {


    @Value("${candela.email.zip.folder}")

    private String zipBaseDir;


    @Value("${candela.email.zip.encryptionmethod:AES}")

    private String encryptionMethod;


    @Value("${candela.email.zip.encryptionstrength:KEY_STRENGTH_128}")

    private String encryptionStrength;


    private ZipParameters zipParameters;


    @PostConstruct

    private void initializeZipProperties() {

        zipParameters = new ZipParameters();

        zipParameters.setEncryptFiles(true);

        zipParameters.setEncryptionMethod(EncryptionMethod.AES);

        zipParameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_128);

    }


    /*

     * Creates a zipfile in the zipBaseDir location

     */

    public ZipFile createZipFile(String zipFileName,char[] password) {

        return new ZipFile(zipBaseDir + "/" + zipFileName,password);

    }


    /**

     * Adds attachment to Zip file

     */

    public void addAttachementToZip(ZipFile zipFile, ByteArrayResource fileContentInBytes, String fileName)

            throws IOException {

        zipParameters.setFileNameInZip(fileName);

        zipFile.addStream(fileContentInBytes.getInputStream(), zipParameters);

    }


}


HUX布斯
浏览 90回答 2
2回答

www说

zip 文件 lib 的最佳解决方案zip4j。特征:创建、添加、提取、更新、从 Zip 文件中删除文件支持流(ZipInputStream 和 ZipOutputStream)读/写受密码保护的 Zip 文件和流支持 AES 和 Zip-Standard 加密方法支持 Zip64 格式Store(无压缩)和 Deflate 压缩方法从分割 Zip 文件创建或提取文件(例如:z01、z02、...zip)支持 zip 中的 Unicode 文件名和注释进度监视器 - 用于集成到应用程序和面向用户的应用程序

跃然一笑

我认为我们需要在磁盘上创建文件。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java