我的项目是创建简单的邮件客户端,处理基本操作,如发送邮件和从收件箱中读取。但是我希望通过一些加密使它更安全。 我知道一些关于使用内置javax.crypto的加密。此外,我已经成功开发了带有java邮件库的非加密邮件客户端 哦,是的,我也检查了bouncy castle和java-mail加密。
这是我的代码
public void send(...) {
// some config on mail props
// .....
Message message = ...;
message.setContent(multipart, "multipart");
MTPTransport smtpTransport = (SMTPTransport) session.getTransport("smtps");
smtpTransport.connect(host, username, password);
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, true));
smtpTransport.sendMessage(message, message.getAllRecipients());
....
}
此时,我开始思考我必须加密" multipart"对象,如:
message.setContent(AESEncrypt.encryptObject(multipart), "multipart");
阅读邮件方法等等,会有解密对象。
或者是什么?
这是我加密方法的一部分
public SealedObject encryptObject(Multipart multipart) {
SealedObject sealedObject = null;
Key secretKey = generateKey(startingKey);
Cipher c = Cipher.getInstance(ALGORITHM);
c.init(Cipher.ENCRYPT_MODE, secretKey);
sealedObject = new SealedObject(multipart, c);
return sealedObject;
}
我曾经读过我们首先需要序列化对象才能加密。好吧,多部分不是序列化对象 我弄错了吗?你有更好的建议/推荐,哪种方式更好? 提前谢谢。