.Net Core获取文件的Sha1值

现在碰到一个需求。 App发版本。后台文件生成sha1值。以及本地cmd生成sha1值比对。如果sha1值不一致。说明文件的字节流变了。需要效验。

话不多说直接Po代码:

        /// 
        /// 效验sha1值
        /// 
        /// sha1值
        /// 文件名
        /// 文件的服务器路径
        /// 
        public bool CheckSha1Num(string sha1Code,string fileName, string file)
        {   
            var path = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + "\\DownLoad\\";

            if (!Directory.Exists(path))//如果不存在,folder是路径
            {
                Directory.CreateDirectory(path);//创建这个文件夹
            }
            //获取文件
            bool downApk = qiniuOsAppService.DownloadFile(file, path+ fileName);
            if (downApk) 
            {
                path += fileName;
                using (Stream fsRead = new FileStream(path, FileMode.Open))
                {
                    var sha1 = System.Security.Cryptography.SHA1.Create();
                    var data = sha1.ComputeHash(fsRead);
                    StringBuilder sha1Num = new StringBuilder();
                    foreach (var t in data)
                    {
                        sha1Num.Append(t.ToString("X2"));
                    }
                    if (sha1Code.ToUpper().Equals(sha1Num.ToString())) 
                    return true;
                }
            }
            return false;
        }

 path是需要保存的路径。   
 因为需要下载的文件是存在七牛云。所以下载需要指定文件名(fileName)。

你可能感兴趣的:(.Net,Core,学习总结)