read office microsoft how outlook java pst

office - outlook api read email



comprueba si un archivo pst está protegido con contraseña con java-libpst (2)

Estoy usando la biblioteca de código abierto java-libpst para analizar un archivo pst outlook.antes de analizar quiero saber si el archivo está protegido con contraseña o no. El problema es que esta biblioteca abre archivos protegidos con contraseña sin contraseña, por lo que no encontré cualquier forma de verificar si el archivo está protegido con contraseña.

Puedo utilizar cualquier otra biblioteca de Java para este propósito, siempre que sean de código abierto.


En los archivos pst protegidos por contraseña, nada está realmente encriptado. La contraseña de un archivo pst se almacena con el identificador 0x67FF. Si no hay contraseña, el valor almacenado es 0x00000000. Outlook ajusta la contraseña al abrir el archivo pst. Debido a esto, , La biblioteca java java-libpst también puede acceder a todos los contenidos de archivos protegidos con contraseña sin la necesidad real de contraseña.

Para verificar si el archivo está protegido con contraseña, usando java-libpst usa esto:

/** * 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; }


No conozco ninguna biblioteca java de código abierto para el archivo .pst, pero sí una biblioteca comercial JPST . Lo usamos para leer archivos .pst. La biblioteca pudo leer el hash de la contraseña del archivo .pst. Como recuerdo, la contraseña se almacena en el objeto MessageStore.

La contraseña no se utiliza para cifrar el contenido del archivo .pst. Cualquier aplicación o biblioteca puede leer el archivo .pst de Outlook sin conocer la contraseña.