使用SHA1哈希生成电子邮件附件

时间:2012-09-28 19:30:57

标签: java sha1

我需要生成带有两个附件的多部分电子邮件:一个附件是带有消息的纯文本文件,另一个附件应包含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哈希?

0 个答案:

没有答案