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;
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/14276734.html

浙公网安备 33010602011771号