「C#」文字列のSHA256ハッシュ値を取得する

2022年1月14日

説明
SHA256 アルゴリズムの暗号サービス プロバイダー (CSP: Cryptographic Service Provider) 実装にアクセスするためのラッパー オブジェクトを定義します。
書式
1.GetBytes(String)
派生クラスでオーバーライドされた場合、指定した文字列に含まれるすべての文字をバイト シーケンスにエンコードします。

2.ComputeHash(Byte[])
指定したバイト配列のハッシュ値を計算します。

3.Clear()
HashAlgorithm クラスによって使用されているすべてのリソースを解放します。

使用例

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

namespace ConsoleApplicationSample
{
    class Program
    {
        static void Main(string[] args)
        {

            // 文字列変数の定義
            string target = "arkgame";

            // ハッシュ値を計算
            SHA256CryptoServiceProvider shsp = new SHA256CryptoServiceProvider();
            // すべての文字をバイト シーケンスにエンコード
            byte[] beforeByteArr = Encoding.UTF8.GetBytes(target);
            // 指定したバイト配列のハッシュ値を計算
            byte[] afterByteArr = shsp.ComputeHash(beforeByteArr);
            // HashAlgorithm クラスによって使用されているすべてのリソースを解放
            shsp.Clear();

            // バイト配列を16進数文字列に変換
            StringBuilder sbd = new StringBuilder();
            foreach (byte bt in afterByteArr)
            {
                sbd.Append(bt.ToString("x2"));
            }

            // コンソールに出力
            Console.WriteLine("SHA256ハッシュ値: " + sbd.ToString());

            Console.ReadKey();
        }
    }
}

実行結果
SHA256ハッシュ値: 165ea25595fa8f204e1a67ae28748c9c567199057910b682657b576bf174f765

C#

Posted by arkgame