Unity3d通用工具类之生成文件的MD5

时间:2022-06-05 12:27:02

今天我们来写写工具类,这个类有什么用呢?

 

也就是无论你做什么项目,这个工具类你都可以拿来用,之所以通用,是可以适用所有项目。

 

这节我主要讲如何生成文件的MD5码。

 

那么这个MD5是个什么鬼东西,读者可以自行百度,其实简略的讲就是验证文件是否被篡改。

 

什么意思,比如当你去网站下载游戏的客户端软件,当有些黑客喜欢搞出点不好的事情,在你的客户端加些恶意代码之类的。

 

当黑客改了客户端文件,随之这个文件的MD5也改变了。所以我们只要验证用户下载的客户端的MD5和网站提供的MD5码是否一致,来判断是否要下载。

 

所以这个MD5是非常有用的,c#也自带MD5库。

 

public static String BuildFileMd5(String filename)
        {
            String filemd5 = null;
            try
            {
                using (var fileStream = File.OpenRead(filename))
                {
                    var md5 = MD5.Create();
                    var fileMD5Bytes = md5.ComputeHash(fileStream);//计算指定Stream 对象的哈希值                                      
                    filemd5 = FormatMD5(fileMD5Bytes);
                }
            }
            catch (System.Exception ex)
            {
                LoggerHelper.Except(ex);
            }
            return filemd5;
        }
        public static string FormatMD5(Byte[] data)
        {
            return System.BitConverter.ToString(data).Replace("-", "").ToLower();//将byte[]装换成字符串
        }

 

 

将这段代码写到Utils类中,以后如果要用到计算MD5码的,直接Utils.BuildFileMd5(path),就可以取到这个文件的md5。

 

是不是很简单,ok,之后我会持续更新一些使用的通用工具方法。