2017-10-15 68 views
0

我正在使用javamail讀取文件並將附件保存到本地目錄。我發送了一個密碼保護文件&一個損壞的文件到郵箱&我的代碼沒有拋出任何異常,這是預期的嗎?輸入流是否可以讀取密碼保護/損壞文件的字節

Multipart multipart = (Multipart) message.getContent(); 
MimeBodyPart part = (MimeBodyPart) multipart.getBodyPart(1); 
byte[] dataInBytes = IOUtils.toByteArray(part.getInputStream()); 
String base64Data = Base64.encodeBase64String(dataInBytes)) 
+2

文件只是一個字節序列。即使它包含加密或損壞的數據,它仍然只不過是一個字節序列。輸入流不以任何方式區分或區分。字節是字節。 – SpiderPig

回答

0

是這正常嗎?

是的。不是它不應該是一個問題。

這些字節只是字節。 Java和Javamail API根據它們的創建方式不作區分。

文件加密將(應該!)阻止某人閱讀未加密的字節......除非他們知道密碼。但是,沒有任何東西可以阻止某人通過合法的或祕密的方式訪問電子郵件,在休息或在途中讀取加密的字節。並且Javamail API不會嘗試去做那。


1 - ...除非加密或密碼。但是,那麼你最有可能已經搞砸了......因爲有人可能在運輸過程中攔截了電子郵件。不管Javamail做什麼。

2 - 如果你仔細想想,那就意味着Javamail API需要參與解密過程。你需要需要來提供你的密碼或解密密鑰到Javamail從你的電子郵件附件中獲取你的文件。那會是一個真正的安全問題!

相關問題