您的代碼中有一些錯誤: 您從不復制到CryptoStream,只復制到基礎fileStream。因此,自然不會計算哈希。 在嘗試確定哈希之前,不要關閉CryptoStream。必須首先關閉流,以確保計算并刷新所有數據。 由于您在編寫時正在計算哈希值,因此必須使用CryptoStreamMode.Write而不是CryptoStreamMode.Read。 SHA512實現了IDisposable,因此應該通過using語句來處理。 因此,您的SaveAsync應修改如下: async Task<byte []> SaveAsync(Stream stream, string path, CancellationToken ct){ var fileName = Path.GetFileName(path); var destinationPath = Path.Combine("/tmp", fileName); using var sha512 = SHA512.Create(); await using (var fileStream = File.Create(path, 0, FileOptions.Asynchronous)) await using (var cryptoStream = new CryptoStream(fileStream, sha512