风还在微微厮杀 2020-03-09 12:09 采纳率: 0%
浏览 3143

C++ 使用Openssl进行HMAC- sha256加密

bool calc_HMAC_SHA256(const std::string &key, const std::string &input, std::string *hmac)
{
unsigned char md[32] = { 0 };//32 bytes

char format_md[65] = { 0 };
unsigned int md_len = sizeof(md);
HMAC_CTX ctx;
HMAC_CTX_init(&ctx);
if (!HMAC_Init_ex(&ctx, key.data(), (int)key.length(), EVP_sha256(), NULL) ||
!HMAC_Update(&ctx, (const unsigned char *)input.data(), input.length()) ||
!HMAC_Final(&ctx, md, &md_len)) {
HMAC_CTX_cleanup(&ctx);
return false;
}
HMAC_CTX_cleanup(&ctx);
for (int i = 0; i < 32; i++) {
snprintf(&format_md[i * 2], 3, "%02x", md[i]); //二进制转为十六进制大写

}
hmac->assign(format_md);
// 转大写

transform(hmac->begin(), hmac->end(), hmac->begin(), ::toupper);
return true;
}
openssl已经导入,lib也引用了,运行时
CloudPayInfo.obj : error LNK2001: 无法解析的外部符号 _EVP_sha256
1>CloudPayInfo.obj : error LNK2001: 无法解析的外部符号 _HMAC_CTX_init
1>CloudPayInfo.obj : error LNK2001: 无法解析的外部符号 _HMAC_CTX_cleanup
1>CloudPayInfo.obj : error LNK2001: 无法解析的外部符号 _HMAC_Init_ex
1>CloudPayInfo.obj : error LNK2001: 无法解析的外部符号 _HMAC_Update
1>CloudPayInfo.obj : error LNK2001: 无法解析的外部符号 _HMAC_Final
请问大佬们怎么解决啊?

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2020-03-09 22:36
    关注
    评论

报告相同问题?

悬赏问题

  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划