【问题标题】:Ways to append message digest (hash) to a file将消息摘要(哈希)附加到文件的方法
【发布时间】:2013-10-06 05:16:50
【问题描述】:

我正在尝试将文件的 md5 哈希附加到文件本身。我正在考虑在实际文件和哈希的开头之间放置一些填充,或者可能让文件的前几个字节指示文件的长度。然后,我将跳过该字节数并读取哈希。最后,我需要一种能够附加文件及其哈希的方法,以便之后易于拆分。你们如何建议这样做?

谢谢

【问题讨论】:

  • 您的文件的 md5 将在您将其附加到内容后更改。看起来你需要某种容器。

标签: java hash md5 digest


【解决方案1】:

首先,不要使用 MD5,它不安全,请改用 SHA2。

我建议不要将长度标题放在前面。它使文件难以被其他程序读取。
许多程序使用前几个字节来表示文件类型。
在那里添加东西会破坏它。

如果您确保哈希文本的长度始终相同,则解决方案很简单。
只需将其添加到文件末尾即可。

然后解码是这样的:

  1. 将最后 x 个字符读入字符串。
  2. 检查它是否与您的 hash_text 布局匹配
  3. 提取哈希值。
  4. 重新散列整个文件(最后一个 x 字符除外)以查看散列是否成立。

看看 gpg 是如何做的并复制该方案。

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v0.9.7 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iEYEARECAAYFAjdYCQoACgkQJ9S6ULt1dqz6IwCfQ7wP6i/i8HhbcOSKF4ELyQB1
oCoAoOuqpRqEzr4kOkQqHRLE/b8/Rw2k
=y6kj
-----END PGP SIGNATURE-----

请注意,如果您通过添加签名来更改文件,您将阻止大多数其他程序使用您的文件。
也许将签名放在包含原始链接的伴随文件中是一个更好的主意。

【讨论】:

  • “不要使用 MD5,它是不安全的”——这完全取决于目标是什么。如果冲突是一个问题,请不要使用 MD5。但作为校验和验证正确性,完全没问题。
  • @MattBall,这取决于,如果您使用 MD5 源代码检查它的正确性,是否包括检查它是否被篡改?在那种情况下,MD5 就不行了。如果您只想在没有安全性的情况下快速检查,为什么不使用 Spooky Hash,它的速度要快 1000 倍。所以无论你想到什么目的,MD5 都是错误的工具。
猜你喜欢
  • 2018-12-03
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 2020-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-28
相关资源
最近更新 更多