我正在使用開源庫java-libpst解析outlook pst
file.be解析之前我想知道文件是否受密碼保護或不是。問題是我們庫打開密碼保護的文件沒有密碼,所以我沒有找到任何方式來檢查該文件是否受密碼保護。檢查pst文件是否使用java-libpst進行密碼保護
我可以使用任何其他Java庫來達到這個目的,只要它們是開源的。
我正在使用開源庫java-libpst解析outlook pst
file.be解析之前我想知道文件是否受密碼保護或不是。問題是我們庫打開密碼保護的文件沒有密碼,所以我沒有找到任何方式來檢查該文件是否受密碼保護。檢查pst文件是否使用java-libpst進行密碼保護
我可以使用任何其他Java庫來達到這個目的,只要它們是開源的。
在密碼保護的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;
}
不知道任何開源的java庫.pst文件,但有商業庫JPST。我們用它來讀取.pst文件。該庫能夠從.pst文件讀取密碼哈希。正如我記得密碼存儲在MessageStore對象中。
密碼不用於加密.pst文件內容。任何應用程序或庫都可以在不知道密碼的情況下讀取Outlook .pst文件。
Thnaks.Your答案幫lot.I創造了一個實用的方法通過解析PST文件頭檢查密碼保護看到我的答案 – vishesh 2013-02-28 10:10:55