1. 如果是要获得某个字符串的SHA256,代码如下:
public static string SHA256(string str) { //如果str有中文,不同Encoding的sha是不同的!! byte[] SHA256Data = Encoding.UTF8.GetBytes(str); SHA256Managed Sha256 = new SHA256Managed(); byte[] by = Sha256.ComputeHash(SHA256Data); return BitConverter.ToString(by).Replace("-", "").ToLower(); //64 //return Convert.ToBase64String(by); //44 }
2. 如果想要获得某个文件的SHA256, 代码如下:
public string SHA256() { string str = @"C:\Users\ICCWDT_Driver\iccwdt.sys"; FileStream stream = new FileStream(str, FileMode.Open); SHA256Managed Sha256 = new SHA256Managed(); byte[] by = Sha256.ComputeHash(stream); return BitConverter.ToString(by).Replace("-", "").ToLower(); //64 //return Convert.ToBase64String(by); //44 }
3. 通过查看系统的API可以看到可以传入的参数有两种:就是传入byte[]类型或者Stream类型
// 摘要: // 计算指定字节数组的哈希值。 // // 参数: // buffer: // 要计算其哈希代码的输入。 // // 返回结果: // 计算所得的哈希代码。 // // 异常: // System.ArgumentNullException: // buffer 为 null。 // // System.ObjectDisposedException: // 此对象已释放。 public byte[] ComputeHash(byte[] buffer); // // 摘要: // 计算指定 System.IO.Stream 对象的哈希值。 // // 参数: // inputStream: // 要计算其哈希代码的输入。 // // 返回结果: // 计算所得的哈希代码。 // // 异常: // System.ObjectDisposedException: // 此对象已释放。 public byte[] ComputeHash(Stream inputStream);
时间: 2024-10-31 21:10:47