對文件或文件夾進行壓縮解壓加密解密

對文件或文件夾進行壓縮解壓加密解密:
Java代碼 複製代碼 收藏代碼
  1. import java.io.File; 
  2. import java.util.UUID; 
  3.  
  4. public class ZipCipherUtil { 
  5.     /**
  6.      * 對目錄srcFile下的所有文件目錄進行先壓縮後加密,然後保存爲destfile
  7.      *
  8.      * @param srcFile
  9.      *            要操作的文件或文件夾
  10.      * @param destfile
  11.      *            壓縮加密後存放的文件
  12.      * @param keyfile
  13.      *            密鑰
  14.      */ 
  15.     public void encryptZip(String srcFile, String destfile, String keyStr) throws Exception { 
  16.         File temp = new File(UUID.randomUUID().toString() + ".zip"); 
  17.         temp.deleteOnExit(); 
  18.         // 先壓縮文件 
  19.         new ZipUtil().zip(srcFile, temp.getAbsolutePath()); 
  20.         // 對文件加密 
  21.         new CipherUtil().encrypt(temp.getAbsolutePath(), destfile, keyStr); 
  22.         temp.delete(); 
  23.     } 
  24.  
  25.     /**
  26.      * 對文件srcfile進行先解密後解壓縮,然後解壓縮到目錄destfile下
  27.      *
  28.      * @param srcfile
  29.      *            要解密和解壓縮的文件名
  30.      * @param destfile
  31.      *            解壓縮後的目錄
  32.      * @param publicKey
  33.      *            密鑰
  34.      */ 
  35.     public void decryptUnzip(String srcfile, String destfile, String keyStr) throws Exception { 
  36.         File temp = new File(UUID.randomUUID().toString() + ".zip"); 
  37.         temp.deleteOnExit(); 
  38.         // 先對文件解密 
  39.         new CipherUtil().decrypt(srcfile, temp.getAbsolutePath(), keyStr); 
  40.         // 解壓縮 
  41.         new ZipUtil().unZip(temp.getAbsolutePath(),destfile); 
  42.         temp.delete(); 
  43.     } 
  44.      
  45.     public static void main(String[] args) throws Exception { 
  46.         long l1 = System.currentTimeMillis(); 
  47.          
  48.         //加密 
  49. //      new ZipCipherUtil().encryptZip("d:\\test\\111.jpg", "d:\\test\\photo.zip", "12345"); 
  50.         //解密 
  51.         new ZipCipherUtil().decryptUnzip("d:\\test\\photo.zip", "d:\\test\\111_1.jpg", "12345"); 
  52.          
  53.         long l2 = System.currentTimeMillis(); 
  54.         System.out.println((l2 - l1) + "毫秒."); 
  55.         System.out.println(((l2 - l1) / 1000) + "秒."); 
  56.     } 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章