| 1234567891011121314151617181920212223 |
- using System.Security.Cryptography;
- namespace MeloongCore;
- public static class HashUtils {
- public enum HashMethod { Md5, Sha1, Sha256, Sha512 }
- /// <summary>
- /// 计算文件的哈希值(十六进制小写)。
- /// </summary>
- 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();
- }
- }
|