在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
类型的值。
SHA256_Data(const sha2_byte* data, size_t len, char digest[SHA256_DIGEST_STRING_LENGTH])
它还有许多性能调优选项。
man EVP_MD_CTX_init
。 - Alexis Wilke