在 C# 上获取文件的 SHA1 二进制 base64 哈希
本文关键字:SHA1 二进制 base64 哈希 文件 获取 | 更新日期: 2023-09-27 18:33:52
我正在考虑在C#上创建一个程序来获取一系列非常大的文件的SHA1二进制base64哈希。
现在,我可以通过在OpenSSL上运行此指令来实现这一点:
openssl sha1 -binary FILENAME | openssl base64
但是我还没有找到"二进制"和"base64"部分的引用来获得与 C# 相同的结果。
可能吗?也许在 C# 中调用 openssl?
谢谢。
您需要使用 Convert.ToBase64String 方法和 System.IO 命名空间来读取二进制文件:
string GetBase64EncodedSHA1Hash(string filename)
{
using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read))
using (SHA1Managed sha1 = new SHA1Managed())
{
return Convert.ToBase64String(sha1.ComputeHash(fs));
}
}
最简单的方法是 Get-FileHash,它从 PS 4.0 开始就可用
了。$ echo "Hello world" >1.tm
$
$ Get-FileHash 1.tm
Algorithm Hash
Path
--------- ---- ----
SHA256 B995A2FAFFB3F27C632CE037BDB2ADB04EC3E578D0FA794BA50CFC16F0F219BF
C:'scratch'1.tm
$