baidu_20374063 2021-06-10 22:11 采纳率: 0%
浏览 145

DELPHI Hmac-SHA256算法问题

怎么得到Hmac-SHA256原始二进制?有没有大老做过???

按下面的代码算法得到的结果后在线验证,只能得到下图的1,2(https://1024tools.com/hmac

我要得到下图3的结果,

先谢谢了

 

 

 

uses
  IdGlobal, IdHashSHA, IdHMAC, IdHMACSHA1, IdSSLOpenSSL;

function CalculateHMACSHA256_64(const value, salt: String): String;
var
  hmac: TIdHMACSHA256;
  hash: TIdBytes;
begin
  LoadOpenSSLLibrary;
  if not TIdHashSHA256.IsAvailable then
    raise Exception.Create('SHA256 hashing is not available!');
  hmac := TIdHMACSHA256.Create;
  try
    hmac.Key := IndyTextEncoding_UTF8.GetBytes(salt);
    hash := hmac.HashValue(IndyTextEncoding_UTF8.GetBytes(value));
    Result := ToHex(hash);

    Result :=EncodeString(Result );
  finally
    hmac.Free;
  end;
end;

 

 

  • 写回答

1条回答 默认 最新

  • 她嫌我菜呜呜呜 2024-04-17 11:47
    关注
    
    HMAC-SHA256是一种使用SHA-256哈希算法和密钥进行消息认证码计算的技术。下面是一个Delphi中计算HMAC-SHA256的示例代码:
    
    uses
      IdHMAC, IdHMACSHA256, IdSSLOpenSSLHeaders;
    
    function CalculateHMAC_SHA256(const Key, Data: AnsiString): AnsiString;
    var
      HMAC: TIdHMACSHA256;
    begin
      HMAC := TIdHMACSHA256.Create;
      try
        HMAC.Key := ToBytes(Key);
        Result := HMAC.HashValue(ToBytes(Data));
      finally
        HMAC.Free;
      end;
    end;
    这段代码使用了 Indy 组件库中的 HMACSHA256 类来计算 HMAC-SHA256。您需要将 Indy 组件库添加到您的 Delphi 项目中,并使用上面的代码来计算 HMAC-SHA256。
    
    对于验证结果的问题,您可能需要确保您提供给算法的数据和密钥与在线验证工具相匹配。如果验证结果仍然不符合预期,可能有其他因素影响了计算结果,比如编码方式、数据格式等。确保在计算 HMAC-SHA256 之前将输入数据和密钥转换为正确的格式,以确保一致的结果。
    
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵