在C#上获取文件的SHA1二进制base64哈希

use*_*177 4 c# binary hash base64 openssl

我正在考虑在C#上创建一个程序来获取一系列非常大的文件的SHA1二进制base64哈希.

现在我可以通过在OpenSSL上运行此指令来实现这一点:

openssl sha1 -binary FILENAME | openssl base64

但是我没有找到"二进制"和"base64"部分的引用来获得与C#相同的结果.

可能吗?也许在C#中调用openssl?

谢谢.

Ash*_*ore 7

您需要使用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));
    }
}
Run Code Online (Sandbox Code Playgroud)