我知道MD5哈希不再适用于安全性,但我一直在使用它们作为校验和来确保文件在下载/传输后没有被破坏,我认为这仍然没问题.虽然在大于千兆字节的文件上使用此方法后,我发现存储和生成的哈希值不匹配.这是在我通过USB记忆棒将其从一台计算机传输到另一台计算机之后.我在网上搜索过,发现一些对大文件的引用可能会产生不一致的哈希,但我没有看到任何结论.
我使用ComputeHash(Stream inputStream)的MD5CryptoServiceProvider前和转移后产生的哈希值,所以它不应该是不同的语言或某事之间搞砸字节格式的情况.我也尝试再次从文件中构建哈希,第二次它似乎创建匹配哈希很好.我是不是很不走运,实际上在将文件复制到USB记忆棒上之后最终破坏了文件?或者这是MD5的一个已知问题,我应该完全抛弃它?如果是这样,那么最理想的替代品是C#标准配置,SHA1是下一个最佳选择吗?