Что такое C ++ эквивалент PHP-функции hash_hmac? - PullRequest
5 голосов
/ 18 сентября 2011

Я портирую PHP-приложение на C ++.Приложение PHP использует эту функцию:

hash_hmac - Генерирует хеш-значение с ключом, используя метод HMAC

Если у меня есть этот код, что он на самом деле делает?

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

Я знаю, что он шифрует некоторые данные, используя sha256 и мой ключ, но как я могу выполнить это в C ++?

Я нашел hmac и sha2 библиотеки, но я не уверен, что они мне нужны.

1 Ответ

16 голосов
/ 18 сентября 2011

Я бы рассмотрел OpenSSL , портативную и полную криптографическую библиотеку (несмотря на ее название, она не просто поддерживает SSL). Он имеет библиотеку HMAC , которую вы можете уверенно обернуть, чтобы получить аналогичную функцию.

Вот пример использования библиотеки HMAC OpenSSL, взятый из другой вопрос по 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);
...