端くれプログラマの備忘録 C# [C#] MD5/SHA1ハッシュ値計算

[C#] MD5/SHA1ハッシュ値計算

.NETにCrypt Service Providerっていうのがある。

using System.IO;
using System.Security.Cryptography;

string calcMD5(string fileName)
{
    byte[] hash;
    using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
        hash = md5.ComputeHash(fs);
        md5.Clear();
    }

    StringBuilder hashStr = new StringBuilder();
    foreach (byte c in hash)
    {
        hashStr.Append(c.ToString("X2"));
    }
    return hashStr.ToString();
}

string calcSHA1(string fileName)
{
    byte[] hash;
    using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
        hash = sha1.ComputeHash(fs);
        sha1.Clear();
    }
    StringBuilder hashStr = new StringBuilder();
    foreach (byte c in hash)
    {
        hashStr.Append(c.ToString("X2"));
    }
    return hashStr.ToString();
}

参考サイト

ファイルのMD5やSHA1などでハッシュ値を計算する: .NET Tips: C#, VB.NET
http://dobon.net/vb/dotnet/string/filemd5.html