UH3L2——获取AB包文件的MD5码
UH3L2——获取AB包文件的MD5码
本章代码关键字
| 1 | System.Security.Cryptography //安全和加密相关命名空间 | 
MD5码
MD5(Message-Digest Algorithm)是MD5信息摘要算法的简称,它是一种广泛使用的密码散列函数
可以生成出一个128位(16个字节)的散列值,用于确保信息的完整一致性
当我们将数据经过MD5算法计算过后,不管我们传入的数据有多大,都会生成一个固定长度(128位共16个字节)的信息摘要值
相同的数据,每次经过MD5算法计算后的结果都会是一样的,如果数据变化,MD5码将会发生变化
因此,我们可以利用MD5码作为文件的唯一标识,通过它来判断文件内容是否变化
MD5码在热更新资源对比文件中的作用
通过资源名或者资源大小我们无法判断资源是否更新,所以我们需要**利用MD5的唯一性,来判断资源的更新**
C#中获取文件的MD5码
关键类:
- 
新知识 - MD5 —— MD5类
- MD5CryptoServiceProvider —— MD5加密服务提供商类
 
- 
- 
老知识 - FileStream —— 文件流类 数据持久化四部曲 2进制中讲解过
- StringBuilder —— 字符串拼接类 C#四部曲C#核心中讲过
 
获取MD5码流程:
- 
根据文件路径,获取文件的流信息 1 using (FileStream file = new FileStream(filePath, FileMode.Open)) 
- 
利用md5对象根据流信息,计算出MD5码(字节数组形式) 1 
 2MD5 md5 = new MD5CryptoServiceProvider(); 
 byte[] md5Info = md5.ComputeHash(file);
- 
将字节数组形式的MD5码转为16进制字符串( byte的ToString()内传入"x2",会转为小写16进制)1 
 2
 3for (int i = 0; i < md5Info.Length; i++) 
 //关于md5Info[i].ToString()内的参数,如果传入X2就是大写的16进制,x2就是小写的
 sb.Append(md5Info[i].ToString("x2"));
读取指定路径下的luaAB包,输出它的MD5码
| 1 | using System.IO; | 
输出如下:

向luaAB包添加了一个文件的输出如下:
 
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 文KRIFE齐的博客!
