是否有标准库或常用库可用于在 Linux 上计算 SHA-512 哈希?
我正在寻找 C 或 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);
检查此代码。它是完全便携的,不需要任何额外的配置。只有 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])
它还有很多性能调整选项。