system.hash.pas

system.hash.pas

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

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

THash = record

THashBobJenkins = record

THashMD5 = record

THashSHA1 = record

THashSHA2 = record

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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 @   delphi中间件  阅读(884)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2019-01-14 indy10的idhttpServer应答字符串
2018-01-14 cxgrid显示海量数据
2016-01-14 中间件解析FDMEMTABLE.delta生成SQL的方法
点击右上角即可分享
微信分享提示