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 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误