如何在Linux上用C ++计算SHA-512哈希?

时间:2011-02-26 04:21:29

标签: c++ c linux hash sha512

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

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

4 个答案:

答案 0 :(得分:11)

您检查了OpenSSL。我自己没有使用它,但文档说它支持它。

以下是few more implementations.

的列表

示例代码

 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)

我正在使用Botan进行各种加密。它有多种SHA(-512)算法。

当我查看C ++加密库时,我也找到了Crypto++。 Botan API的风格对我来说更直接,但这两个库都是稳固且成熟的。

答案 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)

我取得了巨大的成功:

Secure Hash Algorithm (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])

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