查看: 25|回覆: 0

system.hash.pas

[複製鏈接]

2

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2010-7-9
發表於 2021-1-14 13:32:00 | 顯示全部樓層 |閲讀模式

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;

  

回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部