惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
美团技术团队
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
阮一峰的网络日志
阮一峰的网络日志
S
SegmentFault 最新的问题
博客园_首页
雷峰网
雷峰网
V
V2EX
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)
量子位
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
V
Visual Studio Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
Jina AI
Jina AI
月光博客
月光博客
L
LangChain Blog

博客园 - 周黔

delphi firemonkey 12.3 动态绑定TFDMemTable到TStringGrid delphian firemonkey. android:exported 错误 RAD Studio 12 Delphi 12 实现手机无线wifi调试 (巧用Android Studio 2024 连WIFI) Android Studio 2024 不需要三方插件,直接wifi 开发调试,真方便 CEF4Delphi(DELPHI Google Chrome 浏览器封装) 折腾 (2)--打开一个网页 CEF4Delphi(DELPHI Google Chrome 浏览器封装) 折腾 (1)--安装 Delphi WINAPI 任意拖动移动控件 DELPHI 调用标准C接口DLL char *value Apache NetBeans IDE 12.3 双击无反应怪事 [转]Regions and Clipping in GDI+ delphi 10.4 JSON 建立数组示例 delphi 10.3实现TNetHTTPClient 异步 POST 另类实现返回附加标记及Unicode 编码与解码 \u - 周黔 小程序开发笔记1 Delphi DLL 消息循环 Synchronize SendMessage PostMessage 用户中心 - 博客园 delphi 跨版本DLL调用嵌入窗体实现 DELPHI GDI + TGPFont UnitPixel 问题解决 delphi DLL image 动态绘图 句柄处理 delphi 每英寸相素点取值偏差
delphi 11 HMACSha512
周黔 · 2025-02-26 · via 博客园 - 周黔

  备用,是否正确待测

其一 需要opensll ,其二不需要
其一

uses IdHMACSHA1, System.Hash,IdCoderMIME, IdGlobal; function EncryptHMACSha512(Input, AKey: String): String; var SHA512 : TIdHMACSHA512; Encoder: TEncoding; IDBytes: TIDBytes; begin SHA512:=TIdHMACSHA512.Create; try SHA512.Key:=TIdDecoderMIME.DecodeBytes(AKey); Result:=TIdEncoderMIME.EncodeBytes(SHA512.HashValue(ToBytes(Input))); finally SHA512.Free; end; end; end.

  其二

unit EncryptHMACSha512;
 interface
uses   System.SysUtils,System.Hash;

function EnHMACSHA512(Input, AKey: String): String;
function HMACSHA512(const aKey,aData:TBytes):TBytes;
  function BytesToHex(Bytes: TBytes): string;
implementation
  function HMACSHA512(const aKey,aData:TBytes):TBytes;
  begin
    Result:= THashSHA2.GetHMACAsBytes(aData,aKey,SHA512);
  end;

function BytesToHex(Bytes: TBytes): string;
var
  i: Integer;
  s: TStringBuilder;
begin
  s := TStringBuilder.Create;
  try
    for i := 0 to Length(Bytes) - 1 do
      s.Append(IntToHex(Bytes[i], 2));
    Result := s.ToString;
  finally
    s.Free;
  end;
end;

function EnHMACSHA512(Input, AKey: String): String;
  var
   key,data:TBytes;
   HmacResult:TBytes;
   HmacHex:string;
begin
   key:=TEncoding.UTF8.GetBytes(AKey);
   data:=TEncoding.UTF8.GetBytes(Input);
   HmacResult:=HMACSHA512(key,data);
   HmacHex:=BytesToHex(HmacResult);
   Result:=HmacHex;
end;
end.