Filesystems 文件的MD5散列在每个系统上都是唯一的吗?

Filesystems 文件的MD5散列在每个系统上都是唯一的吗?,filesystems,cryptography,md5,Filesystems,Cryptography,Md5,。。。操作系统、文件系统等 或者有散列不同的情况吗?MD5是为特定输入定义的。如果文件内容相同,那么跨系统的MD5将是相同的 相反,这不一定是真的-如果两个文件具有相同的MD5哈希,它们可能具有不同的内容,尽管这种可能性非常低 但是,应该注意的是,由于故意为MD5哈希创建了for冲突,因此认为MD5的加密安全性已被破坏()。我不是安全专家,因此我不确定MD5目前在现实世界中有多脆弱。但是,由于还有其他可用的哈希算法,如果您有选择的话,应该使用它们而不是MD5 无论操作系统、文件系统等如何,位字符

。。。操作系统、文件系统等


或者有散列不同的情况吗?

MD5是为特定输入定义的。如果文件内容相同,那么跨系统的MD5将是相同的

相反,这不一定是真的-如果两个文件具有相同的MD5哈希,它们可能具有不同的内容,尽管这种可能性非常低


但是,应该注意的是,由于故意为MD5哈希创建了for冲突,因此认为MD5的加密安全性已被破坏()。我不是安全专家,因此我不确定MD5目前在现实世界中有多脆弱。但是,由于还有其他可用的哈希算法,如果您有选择的话,应该使用它们而不是MD5

无论操作系统、文件系统等如何,位字符串的哈希值都是相同的。它是对该字符串进行一系列数学运算的结果

但是,请注意,这仅适用于逐位相同的文件。例如,Windows上的大多数文本文件都有
\r\n
换行符,而Linux上通常只有
\n
。文本文件的编码也可能存在差异

换句话说,哈希算法判断两个文件是否二进制相等,而不是语义是否相等


另外,使用MD5时要小心。它坏得无法修理。几乎可以肯定,您应该使用更新的算法,例如SHA256。

md5哈希算法不应该依赖于操作系统和/或文件系统


md5哈希仅取决于文件内容。。在非常罕见的情况下可能会发生冲突,如

MD5是一种算法,这意味着它独立于运行它的系统。

是的,这是我的观点。但是当我有一个二进制文件时,不管发生什么,我都会保存它。对吗?