2011-05-31 46 views
3

一個MD5文件如何創建在C#中的MD5?我想調用txt文件並將c#中的md5調用到txt文件中以對其進行哈希處理。如何創建在C#

public static string MD5Hash(string text) 
{ 
    System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); 
    return System.Text.RegularExpressions.Regex.Replace(BitConverter.ToString(md5.ComputeHash(ASCIIEncoding.Default.GetBytes(text))), 「-」, 「」); 
} 
+0

「急需它」不會讓我們更快地幫助你。無論如何,你已經知道如何計算散列,那麼問題是什麼? – Marlon 2011-05-31 02:49:59

+0

我的問題是如何寫在C#中,並通過調用一個函數來調用這個文件的MD5散列數據的TXT文件 – CutexBabies 2011-05-31 02:59:42

回答

9

here直接被盜。

protected string GetMD5HashFromFile(string fileName) 
{ 
    FileStream file = new FileStream(fileName, FileMode.Open); 
    MD5 md5 = new MD5CryptoServiceProvider(); 
    byte[] retVal = md5.ComputeHash(file); 
    file.Close(); 

    StringBuilder sb = new StringBuilder(); 
    for (int i = 0; i < retVal.Length; i++) 
    { 
    sb.Append(retVal[i].ToString("x2")); 
    } 
    return sb.ToString(); 
} 
+0

一疊X2一個MD5?因爲我通過代碼看我不明白什麼X2 – CutexBabies 2011-05-31 03:06:42

+0

@CutexBabies:'「X2」'是[格式字符串](http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx)爲一個兩位數的十六進制數字。例如,'255.ToString(「x2」)'返回''ff「'。 – dtb 2011-05-31 03:08:18

+0

它是Byte.ToString(字符串格式)方法。 「x2」是一個格式說明符,表示您需要一個兩位數零填充的十六進制數字。 – 2011-05-31 03:10:08