Delphi XE8以降ではSystem.Hashユニットに、ハッシュ値を生成する機能が用意されています。
- System.Hash.THashMD5
MD5ハッシュを実装するレコードです。 -
System.Hash.THashSHA1
SHA-1ハッシュを実装するレコードです。 -
System.Hash.THashBobJenkins
Jenkinsハッシュを実装するレコードです。
次のコードはTHashMD5を使うサンプルです。
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;