簡體   English   中英

在C#上獲取文件的SHA1二進制base64哈希

[英]Get SHA1 binary base64 hash of a file on C#

我正在考慮在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));
    }
}

最簡單的方法是從PS 4.0開始提供Get-FileHash

$ echo "Hello world" >1.tm
$
$ Get-FileHash 1.tm

Algorithm       Hash                                                                   
Path
---------       ----                                                                   ----
SHA256          B995A2FAFFB3F27C632CE037BDB2ADB04EC3E578D0FA794BA50CFC16F0F219BF       
C:\scratch\1.tm


$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM