微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计算文件的MD5校验和

如何解决计算文件的MD5校验和

使用System.Security.Cryptography.MD5非常简单:

using (var md5 = MD5.Create())
{
    using (var stream = File.OpenRead(filename))
    {
        return md5.ComputeHash(stream);
    }
}

(我相信 实际上 不需要处置使用的MD5实现,但是无论如何我还是会这样做。)

之后如何比较结果由您决定;您可以将字节数组转换为例如base64,或直接比较字节。(请注意,数组不会覆盖Equals。使用base64更容易解决问题,但如果您只对比较哈希值感兴趣,则使用效率稍低。)

如果您需要将散列表示为字符串,则可以使用BitConverter以下命令将其转换为十六进制:

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();
        }
    }
}

解决方法

我正在使用iTextSharp从PDF文件读取文本。但是,有时我无法提取文本,因为PDF文件仅包含图像。我每天都下载相同的PDF文件,我想看看PDF是否已被修改。如果无法获得文本和修改日期,则MD5校验和是判断文件是否已更改的最可靠方法吗?

如果是这样,将不胜感激一些代码示例,因为我在密码学方面没有太多经验。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。