Существует ли стандартная библиотека или обычно используемая библиотека, которая может использоваться для вычисления хэшей SHA-512 в Linux?
Я ищу библиотеку C или С++.
Существует ли стандартная библиотека или обычно используемая библиотека, которая может использоваться для вычисления хэшей SHA-512 в Linux?
Я ищу библиотеку C или С++.
Вы отметили 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);
Я использую Botan для различных криптографических целей. Он имеет много видов алгоритмов SHA (-512).
Когда я смотрел криптографические библиотеки С++, я также нашел Crypto ++. Стиль API Botan был для меня более простым, но обе эти библиотеки прочны и зрелы.
Отметьте этот код. Он полностью портативен и не требует каких-либо дополнительных конфигураций. Только 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
У меня был большой успех:
Лицензия 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])
Он также имеет множество настроек настройки производительности.