• 生活小妙招免费各类生活中的小问题知识以及音乐简谱等,是你了解世界未知知识的好地方。

同个录音,修改文件格式(wav改mps)修改后md5码一样吗?

十万个为什么 空空 2024-4-13 08:19:15 4次浏览

关于问题同个录音,修改文件格式(wav 改 mps)修改后 md5 码一样吗?一共有 4 位热心网友为你解答:

【1】、来自网友【uread】的最佳回答:

首先先说结论,同一文件或字符在任何系统环境中计算出的 MD5 值都是相同的,任何二进制文件都是如此,当然包括你所提到的两种格式。道理其实非常简单,因为全世界所有文件的 MD5 摘要值都采用同一种算法得出。如果对同一个文件或字符,你计算出来的 MD5 值不同,那么肯定是这个文件或字符发生了变化,哪怕是一个小小的空格。

对文件求 MD5 值时,我们只提取文件的内容部分,像文件名、保存目录、创建时间、修改时间、权限等等的元信息都是不进行计算的。

在计算机系统中,文件名存储在元数据区(windows 中的 NTFS 格式存储在主控文件表 MFT 中,即主文件表 Master File Table,它是 NTFS 文件系统的核心),文件内容存储在数据区,计算 MD5 只针对数据区的文件内容,而与文件名无关。下图中黄色部分即为 NTFS 系统硬盘为文件元数据区专门预留的空间。

所以改变文件名不会影响到 MD5 数值。实际上,一个文件可以用多个名字,通过链接的方式与文件系统产生联系,也可以通过其它链接方式(其它文件名,如果有的话)进行查看。文件名不属于文件数据的一部分,在进行 MD5 或类似的内容校验时,会自动忽视掉文件名。

MD5 信息摘要算法(MD5 Message-Digest Algorithm),是一种被广泛使用的密码散列函数,可以将任意字节串通过计算产生出一个 128 位(16 字节)的散列值,用于确保信息传输完整一致。该算法于 1992 年公开,1996 年后该算法被证实存在弱点,可以被破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如 SHA-2。2004 年,证实 MD5 算法无法防止碰撞(两个文件的 MD5 值相同),因此这种方法不适用于如 SSL 公开密钥认证或是数字签名等用途。

【2】、来自网友【再也说不清楚】的最佳回答:

取决于文件内容是否被修改,内容即使只改了一个二进制位,md5 也会变化

【3】、来自网友【DeveloperPeer】的最佳回答:

修改文件格式后的 md5 码变了没?

为了弄明白这个问题,需要知道 md5 是什么,是怎么计算的?和修改文件格式影响了什么后,就知道这个问题的答案了。

MD5 是什么?

MD5(消息摘要算法)哈希算法是一种单向密码函数,它可以接受任意长度的消息作为输入。

这里的单向指的是可以通过输入推导出输出 MD5 值,却不能反过来通过 MD5 值推导出输入(当前已经不够安全了,可以破解了)。

MD5 适合用来作为信息摘要,通常 MD5 值一样,说明输入是一样的(不是 100%,但是几率很高,可以默认是一致的)。如果需要强一致性校验,可以结合多种信息摘要算法来比对。

MD5 是怎么计算的?

如下图所示,输入的数据被以 512 位为单位进行位预算,得到 128 位的输出。128 位的输出在于接下来的 512 位(不足需要补齐)进行计算,直到所有数据都计算完。

由此可见,同样的输入,输出结果是一样的。

修改文件格式修改了什么?

这个需要看你是怎么修改的,首先需要明确文件名跟文件内容是两个不同的东西,文件名就像一个人的名字,改名并不影响这个人的物理构成。

如果仅仅是修改了文件名的后缀,则并没有修改文件内容。

如果是对文件进行转换,不同格式的文件的编码是不同的,也就是文件内容不同。

示例,

1.随机填充一个文件

$ head -c 256 /dev/random > file.wav

2.查看修改文件后缀前后文件内容的 md5,发现简单修改文件名后缀是不影响文件内容 md5 的。

$ md5sum.exe file.wav

5f69bc9716b09e7f19c3541d4cfc5d70

$ mv file.wav file.mps

$ md5sum.exe file.mps

5f69bc9716b09e7f19c3541d4cfc5d70

3.查看文件名的 md5, 可见不同的文件名的 md5 是不同的。

$ echo file.wav | md5sum.exe

b545d87a87be1a2a703f16c95b3593b4

$ echo file.mas | md5sum.exe

32a2a55bed9dcecb8cb91cfa2c175c1d

4.模拟修改文件内容编码,这里使用 bash64 编码来模拟格式转换,发现编码不同,文件的 md5 是不同的。

$ md5sum.exe file.mps

5f69bc9716b09e7f19c3541d4cfc5d70

$ cat file.mps |base64.exe >file.b64

$ md5sum.exe file.b64

1c9707f4b22f8f27ef2911a632decd6c

【4】、来自网友【许锒川】的最佳回答:

文件的 MD5 码,与文件内容的二进制有关。与文件名无关。

以上就是关于问题【同个录音,修改文件格式(wav 改 mps)修改后 md5 码一样吗?】的全部回答,希望能对大家有所帮助,内容收集于网络仅供参考,如要实行请慎重,任何后果与本站无关!

喜欢 (0)