详细介绍C#之文件校验工具的开发及问题

2019-12-26 13:15:18王旭
  • byte[] result = sha.ComputeHash(fs);  sha.Clear(); 
  • StringBuilder sb = new StringBuilder();  for (int i = ; i < result.Length; i++) 
  • {  sb.Append(result[i].ToString("X")); 
  • }  return sb.ToString(); 
  • .文件加密数据结构优化

    这么多方法,有许多方法大多数代码还都是重复的,如何让代码更精简呢?重构,提高代码的复用率,最初想的是建一个基类,其他各种具体实现都在继承它,但又觉得好麻烦,要新建好几个类,最终决定,建一个类,用最简单的重构,封装方法。

    最终加密帮助类实现代码如下:

     

     
    1. public static class ValidHelper  { 
    2. public static string GetFileHash(string filePath, HashAlgorithm algorithm)  { 
    3. FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);  byte[] result = algorithm.ComputeHash(fs); 
    4. algorithm.Clear();  StringBuilder sb = new StringBuilder(); 
    5. for (int i = ; i < result.Length; i++)  { 
    6. sb.Append(result[i].ToString("X"));  } 
    7. return sb.ToString();  } 
    8.   public static string GetFileMD(string filePath) 
    9. {  MDCryptoServiceProvider md = new MDCryptoServiceProvider(); 
    10. return GetFileHash(filePath, md);  } 
    11.   public static string GetFileSHA(string filePath)