Openssl EVP的HMAC验证出错

问题描述

我以某种方式编写的代码无法正常工作。 与在线工具使用相同的密钥和密码时,hmac不同。

我的代码是:

    EVP_MD_CTX* mdctx = NULL;
    const EVP_MD* md = NULL;
    EVP_PKEY *pkey = NULL;
    
    unsigned char md_value[EVP_MAX_MD_SIZE];
    size_t md_len = 0;

    mdctx = EVP_MD_CTX_create();
    md = EVP_get_digestbyname("SHA256");
    const unsigned char  a[] = "qwertzuiopqwertzuiopqw";
    pkey = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC,NULL,a,strlen("qwertzuiopqwertzuiopqw"));
    EVP_DigestSignInit(mdctx,md,pkey);
   EVP_DigestSignUpdate(mdctx,"Hallo",sizeof("Hallo")); // iv
    EVP_DigestSignFinal(mdctx,md_value,&md_len);

通过我的代码计算出的hmac是:eadfb51c9fb3f3fcd5741006861d04bc0d695347db4bfb9e04e954e17583c3c5。

online-tool计算出的hmac是:a9e0f9acc1452bdb796556c3c64e29d7f7ab47a59a179ec918c61894eefeba26。

我在做什么错了?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...