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

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

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

示例代码:

复制代码
        static void Main()
        {
            string fileHash = GetFileHash(@"C:\temp.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个建议》陆敏技

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用encrypt care加密工具生成文件的校验和步骤: 1. 打开encrypt care加密工具,选择“Hash”的功能。 2. 点击 “Add File” 或者 “Add Folder”按钮选择要计算校验和的文件或者文件夹。如果需要计算连续文件的校验和,你可以选择“Add File”按钮。 3. 一旦你选择了文件文件夹,点击“Start”按钮,程序会计算文件的校验和,计算结束后校验和会显示在主窗口中。 4. 校验和可以用于验证文件本身是否篡改。如果文件在传输和存储期间被修改,它的校验和也将更改。验证文件的校验和可以确定文件的完整性是否得到了维护。 验证文件的校验和步骤: 1. 打开encrypt care加密工具,选择“Hash”的功能。 2. 点击“Verify”按钮,选择你要验证文件或者文件夹(包含校验和的文本文件) 3. 一旦你选择了文件文件夹,点击“Start”按钮,程序将重新计算文件的校验和,并与原始校验和进行比较。 4. 如果计算出的校验和与原始校验和不同,说明文件有被篡改的可能性,如果计算出的校验和与原始校验和相同,则文件的完整性没有被破坏。 注意事项: 为了确保校验和的正确性,必须对原始文件和校验和本身进行适当的保护和存储。最好将校验和存储在另一个设备或媒体上,以防止在同一个设备或媒体上出现故障的情况下丢失或损坏校验和。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值