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

Nat*_*man 12 c c++ linux hash sha512

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

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

Zim*_*bao 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);
Run Code Online (Sandbox Code Playgroud)

  • 嘿.你打败了我,因为"OpenSSL支持SHA512." 只有24个字符,答案必须至少为30. (4认同)

Tam*_*lei 6

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

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


pol*_*ఠ_ఠ 6

检查此代码。它是完全便携式的,不需要任何其他配置。仅STL就足够了。您只需要声明

#include "sha512.hh"
Run Code Online (Sandbox Code Playgroud)

然后使用功能

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
Run Code Online (Sandbox Code Playgroud)

每当您需要它们时。它们的返回值为std::string