いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

MD5ハッシュ値を算出する(MD5, MD5CryptoServiceProvider, System.Security.Cryptography)

MD5クラスを使用する際のメモです。


MD5は、不可逆のハッシュ値を生成するアルゴリズムです。
よく、パスワードなどに使われていたりします。


MD5クラスは、abstractクラスとなっています。
実装クラスは、

System.Security.Cryptography.MD5CryptoServiceProvider

となっています。

以下、サンプルです。

using System;
using System.Text;
using System.Security.Cryptography;

namespace T{
    
    public class Sample{
        static void Main(){

            string original = "gsf_zero1";

            Console.Write("{0} : ", original);

            MD5 md5 = new MD5CryptoServiceProvider();
            Array.ForEach(
                md5.ComputeHash(Encoding.Unicode.GetBytes(original)),
                delegate(byte element){
                    Console.Write(element.ToString("x2");
                }
            );
            
            Console.WriteLine("");
        }
    }
}

【補足】
後から、調べたらMD5クラスにはCreateというstaticなファクトリメソッドが用意されていました。
なので、

MD5 md5 = MD5.Create();

とする方が、実装クラスとの依存性を断ち切るのでいいですね。