我正在编写一个程序来熟悉OpenSSL,libncurses和UDP网络.我决定使用OpenSSL的SHA256熟悉行业加密标准,但我遇到了让它运行的问题.我已将错误隔离到OpenSSL与已编译程序的链接.我正在研究64位的Ubuntu 12.10.我安装了libssl-dev软件包.
举个例子,C++ main.cpp:
#include <iostream>
#include <sstream>
#include <string>
#include <iomanip>
using namespace std;
#include <openssl/sha.h>
string sha256(const string str)
{
unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, str.c_str(), str.size());
SHA256_Final(hash, &sha256);
stringstream ss;
for(int i = 0; i < SHA256_DIGEST_LENGTH; i++)
{
ss << hex << setw(2) << setfill('0') << (int)hash[i];
}
return ss.str();
}
int main()
{
cout << sha256("test") << endl;
cout << sha256("test2") << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用此处的SHA256()函数作为OpenSSL SHA256功能的包装器.
当我尝试使用以下g ++参数进行编译时,收到以下错误:
millinon@myhost:~/Programming/sha256$ …Run Code Online (Sandbox Code Playgroud)