System.HashユニットのTHashSHA2、THashSHA1、THashMD5クラスでSHA2ハッシュ値、SHA1ハッシュ値、MD5ハッシュ値を生成する ~Delphiでお手軽プログラミング

System.HashユニットのTHashSHA2、THashSHA1、THashMD5クラスでSHA2ハッシュ値、SHA1ハッシュ値、MD5ハッシュ値を生成する ~Delphiでお手軽プログラミング

uses System.Hash;
が必要です。

SHA256ハッシュ値を生成する

uses System.Hash;

procedure TForm1.Button1Click(Sender: TObject);
var h:THashSHA2;
    b:TBytes;
begin
  //SHA256ハッシュ(256Bit=32Byte)
  h:=THashSHA2.Create(SHA256);

  //ハッシュ値を更新
  h.Update('aiueo');
  //ハッシュ値を文字列として表示する
  Memo1.Lines.Add(h.HashAsString);

  //リセットする
  h.Reset;

  //ハッシュ値を更新するデータの作成
  //UTF8の「かきくけこ」をバイト型配列で作成
  b:=TEncoding.UTF8.GetBytes('かきくけこ');
  //ハッシュ値を更新する
  h.Update(b,Length(b));
  //ハッシュ値を文字列として表示する
  Memo1.Lines.Add(h.HashAsString);
end;

SHA1ハッシュ値を生成する

uses System.Hash;

procedure TForm1.Button2Click(Sender: TObject);
var h:THashSHA1;
    b:TBytes;
begin
  //SHA1ハッシュ(160Bit=20Byte)
  h:=THashSHA1.Create.Create();

  //ハッシュ値を更新
  h.Update('aiueo');
  //ハッシュ値を文字列として表示する
  Memo1.Lines.Add(h.HashAsString);

  //リセットする
  h.Reset;

  //ハッシュ値を更新するデータの作成
  //SJISの「かきくけこ」をバイト型配列で作成
  b:=TEncoding.ANSI.GetBytes('かきくけこ');
  //ハッシュ値を更新する
  h.Update(b,Length(b));
  //ハッシュ値を文字列として表示する
  Memo1.Lines.Add(h.HashAsString);
end;

MD5ハッシュ値を生成する

uses System.Hash;

procedure TForm1.Button3Click(Sender: TObject);
var h:THashMD5;
    b:TBytes;
begin
  //MD5ハッシュ(128Bit=16Byte)
  h:=THashMD5.Create();

  //ハッシュ値を更新
  h.Update('aiueo');
  //ハッシュ値を文字列として表示する
  Memo1.Lines.Add(h.HashAsString);

  //リセットする
  h.Reset;

  //ハッシュ値を更新するデータの作成
  //UTF16LEの「かきくけこ」をバイト型配列で作成
  b:=TEncoding.Unicode.GetBytes('かきくけこ');
  //ハッシュ値を更新する
  h.Update(b,Length(b));
  //ハッシュ値を文字列として表示する
  Memo1.Lines.Add(h.HashAsString);
end;