0

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

谢谢

4

1 回答 1

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-----

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

于 2013-10-05T21:16:50.480 回答