我必须证明我的档案。 要做到这一点,我用这个:
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));
}
}