如何解决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 举报,一经查实,本站将立刻删除。