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)
检查此代码。它是完全便携式的,不需要任何其他配置。仅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