CRC或MD5计算文件认证

时间:2018-03-01 14:30:59

标签: c# certificate md5 crc

我必须证明我的档案。 要做到这一点,我用这个:

public static string CalculateFileCrc(string strFilename)
{
    using (var md5 = MD5.Create())
    {
        using (var stream = File.OpenRead(strFilename))
        {
            var hash = md5.ComputeHash(stream);
            string strResult = BitConverter.ToString(hash).Replace("-", "").ToUpperInvariant();
            return strResult;
        }
    }
}

产生类似的东西:

  

8CA7F85DC22A1DEB0917707B6534F480

对我来说这是完美的,考虑到:

  • 包含路径的完整文件名
  • 文件内容

我的第一个问题是:是否有正确且安全的方法将结果存储到文件的日期时间,以便在更改时产生不同的结果?

第二:我被要求用较短的(4个十六进制字符)形式压缩该数字,这更容易手工报告。像

这样的东西
  

B2A3

但始终保持与上述相同的认证程度。 这里的人们以一个程序(用于机器人处理)为例,以这种方式证明程序。

感谢您的帮助

帕特里克

--- --- EDIT 我也试过这个:

using (var md5 = MD5.Create())
{
    using (var stream = File.OpenRead(strFilename))
    {
        return Encoding.Default.GetString(md5.ComputeHash(stream));
    }
}

0 个答案:

没有答案