我将如何使用 SHA1 对文件夹进行哈希处理
本文关键字:哈希 处理 文件夹 何使用 SHA1 | 更新日期: 2023-09-27 18:32:44
有没有办法使用 SHA1 对包含所有内容的文件夹进行哈希处理?我能够使用 MD5 做到这一点,但害怕 MD5 遭受的碰撞。我正在尝试构建一个应用程序,该应用程序可以检查本地文件以查看它们是否与使用哈希的在线版本匹配。
这是我在MD5中使用的代码:
var path = leftCheckTextbox.Text;
var files = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories)
.OrderBy(p => p).ToList();
MD5 md5 = MD5.Create();
for (int i = 0; i < files.Count; i++)
{
string file = files[i];
string relativePath = file.Substring(path.Length + 1);
byte[] pathBytes = Encoding.UTF8.GetBytes(relativePath.ToLower());
md5.TransformBlock(pathBytes, 0, pathBytes.Length, pathBytes, 0);
byte[] contentBytes = File.ReadAllBytes(file);
if (i == files.Count - 1)
md5.TransformFinalBlock(contentBytes, 0, contentBytes.Length);
else
md5.TransformBlock(contentBytes, 0, contentBytes.Length, contentBytes,0);
}
leftHash = BitConverter.ToString(md5.Hash).Replace("-", "").ToLower();
只需将所有MD5
更改为源代码中的SHA1
即可。