1

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

4

0 回答 0