Delphi 10.1 Berlinで、文字列からハッシュ値(MD5/SHA-1/Jenkins)を生成する

Delphi XE8以降ではSystem.Hashユニットに、ハッシュ値を生成する機能が用意されています。

  • System.Hash.THashMD5
    MD5ハッシュを実装するレコードです。

  • System.Hash.THashSHA1
    SHA-1ハッシュを実装するレコードです。

  • System.Hash.THashBobJenkins
    Jenkinsハッシュを実装するレコードです。

次のコードはTHashMD5を使うサンプルです。

md5

uses System.Hash;

procedure TForm1.Button1Click(Sender: TObject);
const
  MSG = 'Hello, world';
var
  MD5: THashMD5;
  Hash: string;
begin
  MD5 := THashMD5.Create;
  MD5.Update(MSG);
  Hash := MD5.HashAsString;

  Edit1.Text := Hash;
end;

バイト列からハッシュ値を生成することもできます。

procedure TForm1.Button2Click(Sender: TObject);
const
  MSG = 'Hello, world';
var
  MD5: THashMD5;
  Bytes: TBytes;
  Hash: string;
begin
  MD5 := THashMD5.Create;
  Bytes := TEncoding.UTF8.GetBytes(MSG);
  MD5.Update(Bytes, Length(Bytes));
  Hash := MD5.HashAsString;

  Edit2.Text := Hash;
end;

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください