C++ 是否有sha256的头文件?

C++ 是否有sha256的头文件?,c++,linux,header,cryptography,sha256,C++,Linux,Header,Cryptography,Sha256,我正在使用linux,我只需要一个现有的sha-256头;我试过很多代码块,但都不起作用 #include <iostream> #include "sha256.h" using namespace std; int main(int argc, char *argv[]) { string input = "abc"; string output1 = sha256(input); cout << "sha256('"<< i

我正在使用linux,我只需要一个现有的sha-256头;我试过很多代码块,但都不起作用

#include <iostream>
#include "sha256.h"

using namespace std;

int main(int argc, char *argv[])
{
    string input = "abc";
    string output1 = sha256(input);

    cout << "sha256('"<< input << "'):" << output1 << endl;
    return 0;
} 
#包括
#包括“sha256.h”
使用名称空间std;
int main(int argc,char*argv[])
{
字符串输入=“abc”;
字符串输出1=sha256(输入);

不能不在STL中。您可以使用您选择的库(例如OpenSSL):

#包括
void foo()
{
SHA256_CTX SHA256;
SHA256_Init(&SHA256);
SHA256_更新(&SHA256,str.c_str(),str.size());
SHA256_Final(散列和SHA256);
}

我猜你的例子来自。如果是这样的话,你可以简单地从网站复制/粘贴文件,然后用你的项目构建它们。

我只是个初学者,所以我再次对此表示歉意。openssl/sha.h:没有这样的文件。我该怎么办?在linux上你必须安装openssl的开发包。在Ubuntu上就是这样
sudo apt get install libssl dev
。这将安装到
/usr/include
中,然后可以被编译器找到。不要忘记链接ssl库。这是您使用的构建环境的问题……因此脱离主题。@Niall这不是我的母语,所以我犯了一些错误,谢谢您修复它。
#include <openssl/sha.h>

void foo()
{
    SHA256_CTX sha256;
    SHA256_Init(&sha256);
    SHA256_Update(&sha256, str.c_str(), str.size());
    SHA256_Final(hash, &sha256);
}