• 【转】编写高质量代码改善C#程序的157个建议——建议115:通过HASH来验证文件是否被篡改


    建议115:通过HASH来验证文件是否被篡改

     MD5算法作为一种最通用的HASH算法,也被广泛用于文件完整性的验证上。文件通过MD5-HASH算法求值,总能得到一个固定长度的MD5值。虽说MD5是一种压缩算法,以致可能存在多个样本空间会得到相同目标字符串的情况,但是这种概率很小。一个1GB的文件,哪怕只改动1字节的内容,得到的MD5值也会完全不同。

    示例代码:

            static void Main()
            {
                string fileHash = GetFileHash(@"C:	emp.txt");
                Console.WriteLine("文件MD5-HASH值为:{0}", fileHash);
            }
    
            public static string GetFileHash(string filePath)
            {
                using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
                using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    return BitConverter.ToString(md5.ComputeHash(fs)).Replace("-", "");
                }
            }

    随意修改 temp.txt文件,得到的MD5值将会不同。

    文件HASH值校验在网络传输中特别有用。网络双方通过约定的某种途径,由发送者告诉接受者文件的HASH值是多少,接受者在收到文件后,对文件求HASH值,然后和事先被告知的那个HASH值做一个比较,如果一致,就可以确保文件在传输中没有被篡改过。

    转自:《编写高质量代码改善C#程序的157个建议》陆敏技

  • 相关阅读:
    ROXFiler 2.6
    ubuntu下lxr的运用
    NTFS3G-Linux 的 NTFS 驱动步骤
    Songbird 0.2.5 Final
    ePDFView:一个轻量的 PDF 文档阅读东西
    Gmail Notifier:又一个 Gmail 邮件通知法式
    Hybrid Share-文件分享软件
    Dolphin:KDE 中的文件管理器
    文泉驿点阵宋体 0.8(嬴政)正式公布
    KDE 4 Kludge 发布宣布
  • 原文地址:https://www.cnblogs.com/farmer-y/p/8005967.html
Copyright © 2020-2023  润新知