C#-将同一目录压缩两次-不同的哈希值

问题描述 投票:0回答:1

我压缩了完全相同的文件,但哈希比较(尝试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();
            }
        }
    }
c# hash zip archive
1个回答
1
投票

解决方案

压缩。

代替使用:

CompressionLevel.Optimal

此作品(相同的哈希值):

CompressionLevel.NoCompression
© www.soinside.com 2019 - 2024. All rights reserved.