Delphi XEでMD5

Team Japan » Indy 9 と Indy 10 でハッシュ値を計算 – MD5, SHA-1, SHA-256」では、TIdHashMessageDigest5のHashBytesAsHexメソッドにバイト配列を渡す方法が紹介されています。

uses IdHashMessageDigest;

procedure TForm1.Button1Click(Sender: TObject);
var
  md5: TIdHashMessageDigest5;
  msg: String;
  hash: String;
begin
  msg := 'Hello, world';
  md5 := TIdHashMessageDigest5.Create;
  hash := LowerCase(md5.HashBytesAsHex(TEncoding.ASCII.GetBytes(msg)));
  md5.Free;

  ShowMessage(hash); //=> bc6e6f16b8a077ef5fbc8d59d0b931b9
end;

もう一つの方法として、TIdHashMessageDigest5のHashStringAsHexメソッドに文字列とエンコーディングを渡す方法があります。

md5.HashStringAsHex(msg, TEncoding.ASCII)

procedure TForm1.Button2Click(Sender: TObject);
var
  md5: TIdHashMessageDigest5;
  msg: String;
  hash: String;
begin
  msg := 'Hello, world';
  md5 := TIdHashMessageDigest5.Create;
  hash := LowerCase(md5.HashStringAsHex(msg, TEncoding.ASCII));
  md5.Free;

  ShowMessage(hash); //=> bc6e6f16b8a077ef5fbc8d59d0b931b9
end;

タイプ数が少しだけ少ないです。

追記

コメント

  1. Pingback: C++Builder XEでMD5 « 山本隆の開発日誌

コメントを残す

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

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