2011-01-28 66 views
1

我在寫一個函數來產生文件上的SHA256哈希。 這裏是我的代碼使用.Net SHA256管理產生無效哈希

public string ComputeHash(Byte[] inputBytes) 
    { 
     Byte[] hashedBytes = new SHA256Managed().ComputeHash(inputBytes); 
     return BitConverter.ToString(hashedBytes); 
    } 

很簡單。事實是,根據我嘗試過的幾個工具,產生的哈希似乎並不是有效的,實際上,與我見過的任何其他sha256字符串不同(甚至不是256字節)。 一個結果,例如是

12-10-B2-60-24-75-11-95-B5-F7-F6-64-39-C3-22-9F-E7-E7-D4-13-69-18-99-C5-A7-C5-EC-2F-E2-D6-09-19 

即使我修剪出每 - 焦炭,一切都是大寫的,而我總是看到小寫rappresentation。 (這也是一個問題)我想知道我是否以正確的方式使用庫。 請幫助

+0

嘗試`返回string.Concat(hashedBytes.Select(x = > x.ToString(「x2」)));`而是。 – LukeH 2011-01-28 16:26:11

回答

5

SHA-256指256 ,又名32 字節這是你看到的。

小寫字母和大寫字母在這裏是不相關的 - 這只是字節作爲一個字符串的表示形式。同上字節之間是否有連字符。不同的工具會產生不同的十六進制字符串表示,這就是所有...所以我期望「1210B2」等同於「12-10-b2」等。

+0

您認爲有更好的方式獲取字符串表示形式,而不是使用BitConverter.ToString方法嗎? – themarcuz 2011-01-28 16:27:06