我需要生成带有两个附件的多部分电子邮件:一个附件是带有消息的纯文本文件,另一个附件应包含SHA1哈希以验证消息的完整性。我可以生成附件和SHA1哈希,但是当我使用带有外部工具(sha1sum)的消息为附件生成SHA1时,它与代码中生成的SHA1不匹配。
这是我生成附件的代码和SHA1:
String tx = "Some message";
// generate message attachment
MimeBodyPart attachment = new MimeBodyPart();
attachment.setDisposition(MimeBodyPart.ATTACHMENT);
attachment.setFileName("myFileName.txt");
attachment.setDataHandler(
new DataHandler(
new ByteArrayDataSource(tx, "text/plain")));
// generate SHA1 hash
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
sha1.update(tx.getBytes("ISO-8859-1"));
String hashString = Hex.encodeHexString(sha1.digest()); // using Apache Commons
// generate SHA1 attachment
MimeBodyPart hash = new MimeBodyPart();
hash.setDisposition(MimeBodyPart.ATTACHMENT);
hash.setFileName("myFileName.sha1");
hash.setDataHandler(
new DataHandler(
new ByteArrayDataSource(hashString, "text/plain")));
我的问题是:为什么我生成的SHA1哈希不匹配附件文件的SHA1哈希?