public static string GetFileMD(string filePath)
{
MDCryptoServiceProvider md = new MDCryptoServiceProvider();
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
byte[] result = md.ComputeHash(fs);
md.Clear();
StringBuilder sb = new StringBuilder();
for (int i = ; i < result.Length; i++)
{
sb.Append(result[i].ToString("X"));
}
return sb.ToString();
}
public static string GetFileSHA(string filePath)
{
SHA sha = new SHACryptoServiceProvider();
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
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();
}
[b].文件加密数据结构优化[/b]
这么多方法,有许多方法大多数代码还都是重复的,如何让代码更精简呢?重构,提高代码的复用率,最初想的是建一个基类,其他各种具体实现都在继承它,但又觉得好麻烦,要新建好几个类,最终决定,建一个类,用最简单的重构,封装方法。
最终加密帮助类实现代码如下:
public static class ValidHelper
{
public static string GetFileHash(string filePath, HashAlgorithm algorithm)
{
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
byte[] result = algorithm.ComputeHash(fs);
algorithm.Clear();
StringBuilder sb = new StringBuilder();
for (int i = ; i < result.Length; i++)
{
sb.Append(result[i].ToString("X"));
}
return sb.ToString();
}
public static string GetFileMD(string filePath)
{
MDCryptoServiceProvider md = new MDCryptoServiceProvider();
return GetFileHash(filePath, md);
}
public static string GetFileSHA(string filePath)
{
SHA sha = new SHACryptoServiceProvider();
return GetFileHash(filePath, sha);
}
public static string GetFileSHA(string filePath)
{
SHA sha = SHA.Create();
return GetFileHash(filePath, sha);
}
public static string GetFileSHA(string filePath)
{
SHA sha = SHA.Create();
return GetFileHash(filePath, sha);
}
public static string GetFileSHA(string filePath)
{
SHA sha = SHA.Create();
return GetFileHash(filePath, sha);
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有