2015-04-05 59 views
0

我們可以通過以下方式隱藏圖像中的rar/zip文件。這個概念被稱爲隱寫術。使用Java從圖像中提取隱藏文件

假設我想隱藏圖像中的RAR文件,我會寫在Windows命令命令提示符

copy /b image.jpg+as.zip hidden.jpg 

現在要回的內容,我們可以用Winrar/7zip的或任何其他實用程序打開hidden.jpg,它會顯示其所有內容

我們讀一個zip文件我用這java代碼

try{ 
      File file=new File(name); 
      ZipFile zipFile=new ZipFile(file); 
      Enumeration<? extends ZipEntry>enumeration=zipFile.entries(); 

      System.out.println("Listing Entries in the zipfile"); 
      while(enumeration.hasMoreElements()){ 
       Object key=enumeration.nextElement(); 
       System.out.println(key.toString()+":"+zipFile.getEntry(key.toString())); 
      } 

      zipFile.close(); 
     }catch(Exception e){ 
      System.out.println(e.toString()); 
     } 

此代碼工作正常進行正常的zip文件/但是當我嘗試用這段代碼打開「hidden.jpg」文件時,它會導致錯誤。我也使用Apache Common Compress Library進行了相同的測試。任何人都可以用某種方式指出我如何在Java中做到這一點?

我相信這是可以做到的原因,我們可以看到使用工具隱藏文件,如WinRAR的

回答

3

這不是真正的隱祕,因爲你是不是隱藏圖像在任何事情。您只是在文件末尾添加數據,並且如果以任何方式編輯圖像,附加數據都會丟失。

某些(不是全部)歸檔人員可以找到「隱藏」數據的唯一原因是他們搜索整個文件以查找可能的歸檔。普通庫例程不。他們期望檔案從一開始就開始。

所以,如果你想打開檔案,你必須找到開始的位置。這可能是通過打開圖像文件並確定其大小,或者只是自己搜索歸檔的開始。

但正如我所說,這不是隱寫術,圖像中沒有任何東西隱藏。

另外,速記正在寫快速的手,隱寫術是隱藏在另一個數據。

+0

隱寫術是關於以隱藏的方式隱藏數據,以便某人不知道什麼是隱藏起來的。在文件末尾追加數據仍被視爲隱寫術,即使它不會欺騙一些更有經驗的人。還有許多隱寫算法,如果載體文件被編輯和/或重新保存,隱藏的數據會遭受失真。像素lsb替換將圖像保存爲jpeg是一個很好的例子。還是隱寫術,只是不健壯。 – Reti43 2015-04-05 09:53:02