【发布时间】:2019-12-20 16:24:53
【问题描述】:
我对 c# 比较陌生。我目前正在学习哈希集,并了解哈希集不允许哈希集中的相同元素。我的问题是我是否能够使用 md5 哈希对目录中的文件进行哈希处理并将它们存储在哈希集中,以便我可以通过某种方式检查重复的哈希或文件?
【问题讨论】:
-
@Viv 在 C# 中有 n 种加密和解密方法。如果你卡在任何地方,sn-p 你的代码
-
提防pigeonholes。哈希集和 MD5 也相似但不同。检查相等性是一个两步工作流程。首先,您检查两个事物的哈希是否相等。如果不是,你可以很确定,事情是不同的。但是您可以不确保它们是相等的。为此,您需要执行更深入的相等性检查。对于文件,您可能必须比较每个字节。所以散列被用来快速清除很多明确的“不等于”。
-
@John MD5 产生一个 128 位的哈希值。 (与 guid 大小相同),因此两个不同的文件极不可能生成相同的哈希。
-
@Magnus 确实不太可能,但这是一个重要的区别,特别是如果 OP 将相同的逻辑应用于哈希,从而导致未来的结果更小。