2017-10-15 69 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从你的电子邮件附件中获取你的文件。那会是一个真正的安全问题!

相关问题