13

是否有标准库或常用库可用于在 Linux 上计算 SHA-512 哈希?

我正在寻找 C 或 C++ 库。

4

4 回答 4

12

你检查过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);
于 2011-02-26T04:39:49.447 回答
8

检查此代码。它是完全便携的,不需要任何额外的配置。只有 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

于 2016-02-15T07:30:58.853 回答
6

我将Botan用于各种加密目的。它有多种SHA(-512)算法。

当我查看 C++ 加密库时,我还发现了Crypto++。Botan API 的风格对我来说更直接,但是这两个库都是可靠和成熟的。

于 2011-10-25T16:25:45.217 回答
0

我在这方面取得了巨大的成功:

安全散列算法 (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])

它还有很多性能调整选项。

于 2011-10-25T16:18:58.343 回答