2013-02-27 88 views
1

我正在使用開源庫java-libpst解析outlook pst file.be解析之前我想知道文件是否受密碼保護或不是。問題是我們庫打開密碼保護的文件沒有密碼,所以我沒有找到任何方式來檢查該文件是否受密碼保護。檢查pst文件是否使用java-libpst進行密碼保護

我可以使用任何其他Java庫來達到這個目的,只要它們是開源的。

回答

1

在密碼保護的pst文件中,實際上沒有任何加密.Pst文件的密碼存儲在標識符0x67FF中。如果沒有密碼,則存儲的值爲0x00000000。此密碼在打開pst文件時與outlook相匹配。由於這個原因,java庫java-libpst也可以在不需要密碼的情況下訪問受密碼保護的文件的所有內容。

要檢查文件是否有密碼保護,使用Java的libpst使用本:

 /** 
    * checks if a pst file is password protected 
    * 
    * @param file - pst file to check 
    * @return - true if protected,false otherwise 
    * 
    * pstfile has the password stored against identifier 0x67FF. 
    * if there is no password the value stored is 0x00000000. 
    */ 
    private static boolean ifProtected(PSTFile file,boolean reomovePwd){ 
     try { 
      String fileDetails = file.getMessageStore().getDetails(); 
      String[] lines = fileDetails.split("\n"); 
      for(String line:lines){ 
       if(line.contains("0x67FF")){ 
        if(line.contains("0x00000000")) 
         return false; 
        else 
         return true; 
       } 

      } 
     } catch (PSTException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return false; 
    } 
1

不知道任何開源的java庫.pst文件,但有商業庫JPST。我們用它來讀取.pst文件。該庫能夠從.pst文件讀取密碼哈希。正如我記得密碼存儲在MessageStore對象中。

密碼不用於加密.pst文件內容。任何應用程序或庫都可以在不知道密碼的情況下讀取Outlook .pst文件。

+0

Thnaks.Your答案幫lot.I創造了一個實用的方法通過解析PST文件頭檢查密碼保護看到我的答案 – vishesh 2013-02-28 10:10:55

相關問題