如何更改文件的MD5

Ron*_*yen 6 md5sum

我们可以通过使用来获取文件的 MD5,md5sum所以我的问题是:

  1. MD5可以改吗?
  2. 如何更改MD5?

sou*_* c. 20

md5sum计算并验证 128 位 MD5 哈希值。MD5 哈希用作文件的紧凑数字指纹。现实世界中任何两个不同的文件都不太可能具有相同的 MD5 哈希值,除非它们是专门为具有相同的哈希值而创建的。

md5sum用于验证文件的完整性,因为几乎对文件的任何更改都会导致其 MD5 哈希值发生更改。最常见的md5sum是用于验证文件没有因文件传输错误、磁盘错误或非恶意干预而更改。

有关更多信息,请参阅维基百科

能不能改?

不可以md5sum。只要文件的内容相同,您就不能更改文件。这就是它的唯一目的。您可以md5sum仅通过对其内容进行任何更改来更改文件的值。

  • 不客气。但可以肯定的是,它正在更改任何文件可能会略有不同。您永远不知道该文件是否会像以前一样工作。在这个过程中总是有文件损坏的机会。 (6认同)
  • @Tschallacka:这是否有效完全取决于文件格式和/或解码器的宽容度。许多二进制格式会忽略尾随空字节,而其他许多则不会。如果附加空字节,基于文本的文件格式可能会停止工作。 (4认同)

gro*_*taj 7

md5sum计算文件内容的 MD5 哈希值。MD5 算法不使用任何随机性(它是确定性的)。它基本上是对输入(文件内容)执行的数学指令列表。每次您向它提供相同的输入时,它都会以完全相同的方式处理它,并且您会得到相同的输出。就像数学一样:无论你尝试多少次,3×7 总是会产生 21。

改变输出的唯一方法是改变输入。


Ano*_*Guy 5

虽然我同意@sauravc,但如果您不介意损坏文件的可能性,有一种方法可以做到。

如果您以任何方式更改文件,则可以重新计算 MD5。

您可以通过在首选编辑器中打开文件,进行加法或减法,然后再次保存来更改文件。

如果您想通过命令行快速执行此操作,您可以使用ddtruncate如下所示:

dd if=/dev/zero bs=1 count=10 >> <yourfile>.<ext>
Run Code Online (Sandbox Code Playgroud)

或者

truncate -s +10 <yourfile>.<ext>
Run Code Online (Sandbox Code Playgroud)

任一命令都应在文件末尾添加 10 个字节。这应该意味着 MD5(下次计算时)应该不同。

谨防

这有可能损坏您的文件,应首先进行彻底测试。