system.hash.pas

system.hash.pas

delphi xe8开始提供system.hash.pas。

xe10.4.1版本,提供有几个记录:

THash = record

THashBobJenkins = record

THashMD5 = record

THashSHA1 = record

THashSHA2 = record

uses  System.Hash;

function md5_hmac(const val, key: string): string;
begin
  var md5: THashMD5 := THashMD5.Create;
  Result := md5.GetHMAC(val, key);
end;

function md5_utf8(const val: string): string;
begin
  var md5: THashMD5 := THashMD5.Create;
  md5.Update(TEncoding.UTF8.GetBytes(val));
  Result := md5.HashAsString;
end;

function sha1_utf8(const val: string): string;
begin
  var sha1: THashSHA1 := THashSHA1.Create;
  sha1.Update(TEncoding.UTF8.GetBytes(val));
  Result := sha1.HashAsString;
end;

function sha2_utf8(const val: string): string;
begin
  var sha2: THashSHA2 := THashSHA2.Create;
  sha2.Update(TEncoding.UTF8.GetBytes(val));
  Result := sha2.HashAsString;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Add(md5_utf8('咏南中间件'));         //ce33960c8f97c85161a8b28b7000b3c6
  Memo1.Lines.Add(sha1_utf8('咏南中间件'));        //2566ca7678fcdb309846eabef3911dc6e5f8814d
  Memo1.Lines.Add(sha2_utf8('咏南中间件'));        //f3bbbfaf81071d67f02fd519553789c671c7e0514045885e5bd8faa80d66792f
  Memo1.Lines.Add(md5_hmac('咏南中间件', '钥匙')); //0796b66fa3180024cb5e49cba66dbf58
end;

  

posted @ 2021-01-14 13:32  delphi中间件  阅读(803)  评论(0编辑  收藏  举报