是否有可用于在Linux上计算SHA-512哈希值的标准库或常用库?
我正在寻找一个C或C ++库。
答案 0 :(得分:11)
您检查了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);
答案 1 :(得分:5)
答案 2 :(得分:5)
检查this code。它完全便携,不需要任何其他配置。只有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
答案 3 :(得分:0)
我取得了巨大的成功:
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])
它还有很多性能调整选项。