1. ホーム
  2. c#

[解決済み] 文字列からMD5ハッシュを計算する

2022-04-21 23:02:05

質問

私は以下のC#コードを使って、文字列からMD5ハッシュを計算しています。 これはうまく動作し、以下のような32文字の16進文字列を生成します。 900150983cd24fb0d6963f7d28e17f72

string sSourceData;
byte[] tmpSource;
byte[] tmpHash;
sSourceData = "MySourceData";

//Create a byte array from source data.
tmpSource = ASCIIEncoding.ASCII.GetBytes(sSourceData);
tmpHash = new MD5CryptoServiceProvider().ComputeHash(tmpSource);

// and then convert tmpHash to string...

このようなコードを使って、16文字の16進文字列(または12文字の文字列)を生成する方法はありますか?32文字の16進文字列もいいのですが、お客さんがコードを入力するのがつまらないと思うのです

どのように解決するのですか?

の通りです。 MSDN

MD5を作成します。

public static string CreateMD5(string input)
{
    // Use input string to calculate MD5 hash
    using (System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create())
    {
        byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
        byte[] hashBytes = md5.ComputeHash(inputBytes);

        // Convert the byte array to hexadecimal string
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < hashBytes.Length; i++)
        {
            sb.Append(hashBytes[i].ToString("X2"));
        }
        return sb.ToString();
    }
}