PHP 的 hash_hmac 函数的C++等价物是什么?

What is the C++ equivalent of PHP's hash_hmac function?

本文关键字:等价物 是什么 C++ hmac hash PHP 函数      更新时间:2023-10-16

我正在将一个PHP应用程序移植到c++。PHP应用程序正在使用这个函数:

hash_hmac -使用HMAC方法生成一个关键的哈希值

如果我有这段代码,它实际上在做什么?

$sStr = hash_hmac ('sha256', $mydata,$mykey, $raw = true)

我知道它使用sha256和我的密钥加密一些数据,但我如何在c++中执行此操作?

我已经找到了hmac和sha2库,但我不确定它们是否是我需要的。

我会考虑考虑OpenSSL,一个可移植的完整加密库(尽管它的名字,它不只是做SSL)。它有一个HMAC库,你当然可以包装它来获得类似的功能。

下面是一个关于如何使用OpenSSL的HMAC库的例子,取自StackOverflow的另一个问题(注释我的):

  // Initialize HMAC object.
HMAC_CTX ctx;
HMAC_CTX_init(&ctx);
  // Set HMAC key.
HMAC_Init_ex(&ctx, key, 16, EVP_sha256(), NULL);
  // May be called repeatedly to insert all your data.
HMAC_Update(&ctx, data, 8);
  // Finish HMAC computation and fetch result.
HMAC_Final(&ctx, result, &result_len);
  // Done with HMAC object.
HMAC_CTX_cleanup(&ctx);