我们可以使用以下方法获取文件的 MD5 md5sum
,因此我的问题是:
- MD5 可以改变吗?
- 如何更改MD5?
答案1
md5sum
计算并验证 128 位 MD5 哈希值。MD5 哈希值相当于文件的紧凑数字指纹。现实世界中,任何两个不相同的文件都不太可能具有相同的 MD5 哈希值,除非它们被专门设计为具有相同的哈希值。
md5sum
用于验证文件的完整性,因为几乎对文件的任何更改都会导致其 MD5 哈希值发生变化。最常见的是,md5sum
用于验证文件是否未因文件传输错误、磁盘错误或非恶意干预而发生变化。
更多详情请参阅维基百科
可以改变吗?
md5sum
不可以。只要文件内容相同,您就无法更改文件。这是它的唯一目的。您只能md5sum
通过更改文件内容来更改文件的值。
答案2
md5sum
计算文件内容的 MD5 哈希值。MD5 算法不使用任何随机性(它是确定性的)。它基本上是针对输入(文件内容)执行的数学指令列表。每次您为其提供相同的输入时,它都会以完全相同的方式处理它,并且您会得到相同的输出。就像数学一样:无论您尝试多少次,3×7 总是会得到 21。
改变输出的唯一方法是改变输入。
答案3
虽然我同意@sauravc,如果您不介意损坏文件的可能性,有一种方法可以做到这一点。
如果您以任何方式更改文件,您可以重新计算 MD5。
您可以通过在您喜欢的编辑器中打开文件、进行添加或删除、然后再次保存来更改文件。
如果您想通过命令行快速执行此操作,则可以使用以下任一dd
方法truncate
:
dd if=/dev/zero bs=1 count=10 >> <yourfile>.<ext>
或者
truncate -s +10 <yourfile>.<ext>
任何命令都会在文件末尾添加 10 个字节。这意味着 MD5(下次计算时)应该有所不同。
谨防
这可能会损坏您的文件,因此应先进行彻底的测试。