Как рассчитать хэш SHA-512 в C ++ в Linux? - PullRequest
11 голосов
/ 26 февраля 2011

Существует ли стандартная библиотека или обычно используемая библиотека, которая может использоваться для вычисления хэшей SHA-512 в Linux?

Я ищу библиотеку C или C ++.

Ответы [ 4 ]

11 голосов
/ 26 февраля 2011

Вы проверили OpenSSL .Я сам не использовал его, но в документации сказано, что он поддерживает это.

Вот список еще нескольких реализаций.

Пример кода

 md = EVP_get_digestbyname("sha512");
 EVP_MD_CTX_init(&mdctx);
 EVP_DigestInit_ex(&mdctx, md, NULL);
 EVP_DigestUpdate(&mdctx, mess1, strlen(mess1));
 EVP_DigestUpdate(&mdctx, mess2, strlen(mess2));
 EVP_DigestFinal_ex(&mdctx, md_value, &md_len);
 EVP_MD_CTX_cleanup(&mdctx);
5 голосов
/ 15 февраля 2016

Проверьте этот код .Он полностью переносим и не требует дополнительных настроек.Только STL будет достаточно.Вам просто нужно объявить

#include "sha512.hh"

и затем использовать функции

sw::sha512::calculate("SHA512 of std::string") // hash of a string, or
sw::sha512::file(path) // hash of a file specified by its path, or
sw::sha512::calculate(&data, sizeof(data)) // hash of any block of data

всякий раз, когда они вам нужны.Их возвращаемое значение std::string

5 голосов
/ 25 октября 2011

Я использую Botan для различных криптографических целей.Он имеет много видов алгоритмов SHA (-512).

Когда я просматривал криптографические библиотеки C ++, я также обнаружил Crypto ++ .Стиль Botan API был для меня более простым, но обе эти библиотеки солидные и зрелые.

0 голосов
/ 25 октября 2011

Я имел большой успех с этим:

Алгоритм безопасного хэширования (SHA)

Лицензия BSDОн охватывает SHA-1, SHA-224, SHA-256, SHA-384 и SHA-512.Он имеет аккуратные вспомогательные функции, уменьшающие количество шагов для простых случаев:

SHA256_Data(const sha2_byte* data, size_t len, char digest[SHA256_DIGEST_STRING_LENGTH])

Он также имеет множество опций настройки производительности.

...