using System.Security.Cryptography; namespace MeloongCore; public static class HashUtils { public enum HashMethod { Md5, Sha1, Sha256, Sha512 } /// /// 计算文件的哈希值(十六进制小写)。 /// public static string ComputeFromFile(string filePath, HashMethod method) { using var file = FileUtils.ReadAsStream(filePath); using HashAlgorithm hashImpl = method switch { HashMethod.Md5 => MD5.Create(), HashMethod.Sha1 => SHA1.Create(), HashMethod.Sha256 => SHA256.Create(), HashMethod.Sha512 => SHA512.Create(), _ => throw new ArgumentOutOfRangeException(nameof(method)) }; Logger.Trace($"计算文件 {method}:{filePath}"); return BitConverter.ToString(hashImpl.ComputeHash(file)).Replace("-", "").ToLower(); } }