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

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 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示