我压缩了完全相同的文件,但哈希比较(尝试MD5和SHA256)不同。我读到无法比较zip文件,因为在再次用相同文件压缩后,它们总是有所不同。我该怎么做才能创建相同的存档?
正在压缩
private string CreateZip(string path)
{
var targetPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\" +
RandomString() + ".zip";
ZipFile.CreateFromDirectory(path, targetPath, CompressionLevel.Optimal, true);
return targetPath;
}
散列
static string CalculateMD5(string filename)
{
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(filename))
{
var hash = md5.ComputeHash(stream);
return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
}
}
}
解决方案
压缩。
代替使用:
CompressionLevel.Optimal
此作品(相同的哈希值):
CompressionLevel.NoCompression