Используя C#, я хочу создать хеш MD5 текстового файла. Как я могу выполнить это?
Обновление: Благодаря всем для их справки. Я наконец обосновался на следующий код -
// Create an MD5 hash digest of a file
public string MD5HashFile(string fn)
{
byte[] hash = MD5.Create().ComputeHash(File.ReadAllBytes(fn));
return BitConverter.ToString(hash).Replace("-", "");
}
Вот стандартная программа, которую я в настоящее время использую.
using System.Security.Cryptography;
public string HashFile(string filePath)
{
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
return HashFile(fs);
}
}
public string HashFile( FileStream stream )
{
StringBuilder sb = new StringBuilder();
if( stream != null )
{
stream.Seek( 0, SeekOrigin.Begin );
MD5 md5 = MD5CryptoServiceProvider.Create();
byte[] hash = md5.ComputeHash( stream );
foreach( byte b in hash )
sb.Append( b.ToString( "x2" ) );
stream.Seek( 0, SeekOrigin.Begin );
}
return sb.ToString();
}
Коротко и до точки. Имя файла
- это имя вашего текстового файла:
using (var md5 = MD5.Create())
{
return BitConverter.ToString(md5.ComputeHash(File.ReadAllBytes(filename))).Replace("-", "");
}