using System; using System.Collections.Generic; using System.IO; using System.Security.Cryptography; using System.Text; namespace Utility.Tools { public static class Md5Tools { public static string CalcMd5(this string str) { byte[] bytes = System.Text.Encoding.UTF8.GetBytes(str); return CalcMd5(bytes); } public static string CalcMd5(byte[] bytes) { using (MD5 md5 = MD5.Create()) { byte[] computeBytes = md5.ComputeHash(bytes); string result = ""; for (int i = 0; i < computeBytes.Length; i++) { result += computeBytes[i].ToString("X").Length == 1 ? "0" + computeBytes[i].ToString("X") : computeBytes[i].ToString("X"); } return result; } } public static string CalcMd5(Stream stream) { using (MD5 md5 = MD5.Create()) { byte[] computeBytes = md5.ComputeHash(stream); string result = ""; for (int i = 0; i < computeBytes.Length; i++) { result += computeBytes[i].ToString("X").Length == 1 ? "0" + computeBytes[i].ToString("X") : computeBytes[i].ToString("X"); } return result; } } } }