在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Java中加密和解密zip文件

科技綠洲 ? 來(lái)源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-10-08 11:48 ? 次閱讀

在本文中,我們來(lái)學(xué)習(xí)如何用Zip4j庫(kù)創(chuàng)建受密碼保護(hù)的壓縮文件并將其解壓。

依賴

讓我們先把 zip4j 依賴關(guān)系添加到我們的 pom.xml 文件中。

< dependency >
    < groupId >net.lingala.zip4j< /groupId >
    < artifactId >zip4j< /artifactId >
    < version >2.9.0< /version >
< /dependency >

壓縮一個(gè)文件

首先,我們將使用ZipFile addFile()方法將一個(gè)名為aFile.txt的文件壓縮到一個(gè)名為compressed.zip的有密碼保護(hù)的 zip 文件。

ZipParameters zipParameters = new ZipParameters();
zipParameters.setEncryptFiles(true);
zipParameters.setCompressionLevel(CompressionLevel.HIGHER);
zipParameters.setEncryptionMethod(EncryptionMethod.AES);

ZipFile zipFile = new ZipFile("compressed.zip", "password".toCharArray());
zipFile.addFile(new File("aFile.txt"), zipParameters);

setCompressionLevel一行是可選的。我們可以從FASTESTULTRA級(jí)別中選擇(默認(rèn)是NORMAL)。

在這個(gè)例子中,我們使用了AES加密。如果我們想使用Zip標(biāo)準(zhǔn)加密,我們只需用ZIP_STANDARD替換AES

注意,如果文件 "aFile.txt "在磁盤(pán)上不存在,該方法將拋出一個(gè)異常。net.lingala.zip4j.exception.ZipException File does not exist: …

為了解決這個(gè)問(wèn)題,我們必須確保該文件是手動(dòng)創(chuàng)建并放置在項(xiàng)目文件夾中,或者我們必須從Java中創(chuàng)建它。

File fileToAdd = new File("aFile.txt");
if (!fileToAdd.exists()) {
    fileToAdd.createNewFile();
}

另外,在我們完成了新的ZipFile之后,需要及時(shí)關(guān)閉資源:

zipFile.close();

壓縮多個(gè)文件

讓我們修改一下代碼,以便我們能夠一次壓縮多個(gè)文件。

ZipParameters zipParameters = new ZipParameters();
zipParameters.setEncryptFiles(true);
zipParameters.setEncryptionMethod(EncryptionMethod.AES);

List< File > filesToAdd = Arrays.asList(
  new File("aFile.txt"),
  new File("bFile.txt")
);

ZipFile zipFile = new ZipFile("compressed.zip", "password".toCharArray());
zipFile.addFiles(filesToAdd, zipParameters);

我們不使用addFile方法,而是使用addFiles()并傳入一個(gè)List的文件。

壓縮一個(gè)目錄

我們可以簡(jiǎn)單地用addFolder代替addFile方法來(lái)壓縮一個(gè)文件夾。

ZipFile zipFile = new ZipFile("compressed.zip", "password".toCharArray());
zipFile.addFolder(new File("/users/folder_to_add"), zipParameters);

創(chuàng)建一個(gè)分割的壓縮文件

我們可以通過(guò)使用createSplitZipFilecreateSplitZipFileFromFolder方法,``將壓縮文件分割成幾個(gè)文件。

ZipFile zipFile = new ZipFile("compressed.zip", "password".toCharArray());
int splitLength = 1024 * 1024 * 10; //10MB
zipFile.createSplitZipFile(Arrays.asList(new File("aFile.txt")), zipParameters, true, splitLength);
zipFile.createSplitZipFileFromFolder(new File("/users/folder_to_add"), zipParameters, true, splitLength);

splitLength的單位是字節(jié)。

提取所有文件

提取文件也同樣簡(jiǎn)單。我們可以用extractAll()方法從我們的compressed.zip中提取所有文件。

ZipFile zipFile = new ZipFile("compressed.zip", "password".toCharArray());
zipFile.extractAll("/destination_directory");

提取單個(gè)文件

如果我們只想從compressed.zip中提取一個(gè)文件,我們可以使用extractFile()方法。

ZipFile zipFile = new ZipFile("compressed.zip", "password".toCharArray());
zipFile.extractFile("aFile.txt", "/destination_directory");

總結(jié)

綜上所述,我們已經(jīng)學(xué)會(huì)了如何用Zip4j庫(kù)在Java中創(chuàng)建受密碼保護(hù)的壓縮文件并將其解壓。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2985

    瀏覽量

    106953
  • Zip
    Zip
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    8736
  • 磁盤(pán)
    +關(guān)注

    關(guān)注

    1

    文章

    388

    瀏覽量

    25665
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    578

    瀏覽量

    25218
  • 加密
    +關(guān)注

    關(guān)注

    0

    文章

    317

    瀏覽量

    24303
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Protel在線教程:如何在PCB文件中加漢字

    Protel在線教程:如何在PCB文件中加漢字 在PCB文件上面加上漢字一直都是很多網(wǎng)友比較感興趣的事情。PROTEL早期的版本加
    發(fā)表于 04-22 09:09 ?4302次閱讀
    Protel在線教程:如<b class='flag-5'>何在</b>PCB<b class='flag-5'>文件</b><b class='flag-5'>中加</b>漢字

    CC2541上微信的加密和解密

    本帖最后由 冒汗的心情 于 2016-4-15 10:42 編輯 CC2541上微信的加密和解密CC2541連接微信有兩種,一個(gè)是精簡(jiǎn)協(xié)議,一個(gè)是完整協(xié)議,精簡(jiǎn)協(xié)議沒(méi)有身份驗(yàn)證和加解密,而且
    發(fā)表于 04-13 11:39

    labview加密解密文件

    本帖最后由 wang060102122 于 2017-9-8 14:50 編輯 論壇有位網(wǎng)友分布的加密和解密文件夾小程序,其中加密可以正常使用,
    發(fā)表于 09-08 14:45

    ZigBee的加密和解密介紹

    Center(信任中心)的概念,本章內(nèi)容主要講解的是TC的交換秘鑰過(guò)程。1. 非對(duì)稱加密算法。* 對(duì)稱加密算法在加密和解密時(shí)使用的是同一個(gè)秘鑰,而非對(duì)稱
    發(fā)表于 04-17 18:12

    何在Python中加密和解密數(shù)據(jù)

      加密是對(duì)信息進(jìn)行編碼的過(guò)程,只有授權(quán)方才能訪問(wèn)它。這一點(diǎn)至關(guān)重要,因?yàn)樗梢园踩乇Wo(hù)您不希望任何人看到或訪問(wèn)的數(shù)據(jù)。在本文中,您將學(xué)習(xí)如何使用Python使用加密 庫(kù)對(duì)文件或任何字節(jié)對(duì)象,也
    發(fā)表于 08-07 17:45

    RT1020總線加密引擎是否加密和解密

    總線加密引擎是否加密和解密? 例如,如果我正在運(yùn)行一個(gè)加密的 XIP 應(yīng)用程序(來(lái)自串行或閃存),并且我希望它向閃存的不同區(qū)域?qū)懭胍恍﹥?nèi)容,會(huì)發(fā)生什么?是寫(xiě)的時(shí)候
    發(fā)表于 05-10 06:10

    數(shù)據(jù)加密和解密,數(shù)據(jù)加密和解密原理是什么?

    數(shù)據(jù)加密和解密,數(shù)據(jù)加密和解密原理是什么? 隨著Internet 的普及,大量的數(shù)據(jù)、文件在Internet 傳送,因此在客觀上就需要一種
    發(fā)表于 03-19 13:46 ?7378次閱讀

    JAVA教程之用Zip壓縮多個(gè)文件

    JAVA教程之用Zip壓縮多個(gè)文件,很好的JAVA的資料,快來(lái)學(xué)習(xí)吧
    發(fā)表于 04-11 17:28 ?3次下載

    C語(yǔ)言教程之字符串加密和解密

    C語(yǔ)言教程之字符串加密和解密,很好的C語(yǔ)言資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-25 15:49 ?0次下載

    Wannacry的逆向分析及加密文件解密

    Wannacry的逆向分析及加密文件解密
    發(fā)表于 09-07 09:59 ?10次下載
    Wannacry的逆向分析及<b class='flag-5'>加密</b><b class='flag-5'>文件</b>的<b class='flag-5'>解密</b>

    java實(shí)現(xiàn)非對(duì)稱加密算法的過(guò)程

    對(duì)稱式加密解密方式是加密方式的逆運(yùn)算,即加密和解密使用的是同一個(gè)密鑰(初等加密算法)。非對(duì)稱式
    發(fā)表于 12-10 10:54 ?5624次閱讀
    <b class='flag-5'>java</b>實(shí)現(xiàn)非對(duì)稱<b class='flag-5'>加密</b>算法的過(guò)程

    單片機(jī)的加密和解密

    由于工作的關(guān)系經(jīng)常會(huì)編寫(xiě)單片機(jī)程序,也經(jīng)常有客戶抱怨還沒(méi)有量產(chǎn)多久,程序就被破解了,于是不斷的研究加密和解密技術(shù),經(jīng)過(guò)5年來(lái)不斷的學(xué)習(xí)和同行的交流,目前的程序破解的可能性已經(jīng)大大降低了,下面說(shuō)下具體
    發(fā)表于 01-24 10:57 ?2次下載

    云存儲(chǔ)下可追蹤的外包解密屬性加密方案

    針對(duì)云存儲(chǔ)中密鑰追蹤問(wèn)題,基于外包解密的屬性加密方案,提出一種新的屬性加密方案。通過(guò)在密鑰中加入密鑰因子,生成所有用戶的解密記錄表T,數(shù)據(jù)擁
    發(fā)表于 02-27 15:24 ?0次下載
    云存儲(chǔ)下可追蹤的外包<b class='flag-5'>解密</b>屬性<b class='flag-5'>加密</b>方案

    詳細(xì)解讀Go加密解密算法

    :對(duì)稱加密(也叫私鑰加密)指加密和解密使用相同密鑰的加密算法。具體算法主要有DES算法,3DES算法,TDEA算法,Blowfish算法,R
    的頭像 發(fā)表于 07-29 17:37 ?2693次閱讀

    GPG加密和解密文件在Linux中使用

    GPG(GNU Privacy Guard)是一種免費(fèi)的開(kāi)源加密軟件,用于保護(hù)計(jì)算機(jī)數(shù)據(jù)的機(jī)密性和完整性。 它使用非對(duì)稱加密算法,也稱為公鑰加密算法,其中數(shù)據(jù)被加密
    的頭像 發(fā)表于 05-12 14:47 ?2436次閱讀
    GPG<b class='flag-5'>加密</b><b class='flag-5'>和解密</b><b class='flag-5'>文件</b>在Linux中使用
    主站蜘蛛池模板: 在线观看jyzzjyzz | 国产重口老太和小伙乱视频 | 国产一级特黄aa级特黄裸毛片 | 五月国产综合视频在线观看 | 免费操人视频 | 色视频www在线播放国产人成 | 成人免费看片视频色多多 | 又粗又大又猛又爽免费视频 | 午夜cao| 日本高清午夜色wwwσ | 特级aaa片毛片免费观看 | 四虎影院观看视频在线观看 | 伊人久久综合成人网小说 | 日韩一级片在线观看 | 日韩欧美高清色码 | 两人性潮高免费视频看 | 久久综合五月开心婷婷深深爱 | 视频在线免费观看网址 | 久久狠色噜噜狠狠狠狠97 | 欧洲不卡一卡2卡三卡4卡网站 | 国产特黄特色的大片观看免费视频 | 深夜释放自己vlog糖心旧版本 | 午夜视频在线观看网站 | 国产色视频网站免费观看 | 久优草 | 色视频网址 | 五月天丁香婷 | 日本特黄a级高清免费酷网 日本特黄色大片 | 77se77亚洲欧美在线大屁股 | 乱子伦xxxx厨房 | 伊人久久大香线蕉综合影 | 88av影院| 欧美伊人 | 色综合天天综合网国产成人网 | 久草老司机 | 男啪女视频免费观看网站 | 在线播放你懂得 | 日本黄色免费观看 | 国产午夜精品理论片久久影视 | xx视频在线观看 | 一级三级黄色片 |