Dev c++ 无法为Devc上的SHA-256哈希编译加密 #包括 #包括 #包括 #包括 #包括 #包括 使用名称空间std; 使用名称空间CryptoPP; const int MAX_PHRASE_LENGTH=250; int main(int argc,char*argv[]){ CryptoPP::SHA256散列; 字节摘要[CryptoPP::SHA256::DIGESTSIZE]; std::string message=“你好,世界!”; hash.calculatedgest(摘要,(常量字节*)message.c_str(),message.length(); CryptoPP::HexEncoder编码器; std::字符串输出; encoder.Attach(新的CryptoPP::StringSink(输出)); 编码器.Put(摘要,sizeof(摘要)); encoder.MessageEnd(); std::cout

Dev c++ 无法为Devc上的SHA-256哈希编译加密 #包括 #包括 #包括 #包括 #包括 #包括 使用名称空间std; 使用名称空间CryptoPP; const int MAX_PHRASE_LENGTH=250; int main(int argc,char*argv[]){ CryptoPP::SHA256散列; 字节摘要[CryptoPP::SHA256::DIGESTSIZE]; std::string message=“你好,世界!”; hash.calculatedgest(摘要,(常量字节*)message.c_str(),message.length(); CryptoPP::HexEncoder编码器; std::字符串输出; encoder.Attach(新的CryptoPP::StringSink(输出)); 编码器.Put(摘要,sizeof(摘要)); encoder.MessageEnd(); std::cout,dev-c++,crypto++,Dev C++,Crypto++,删除#包括 正如弗雷泽所说,使用-L 正如弗雷泽所说,使用-lcryptopp或-lcryptop++。你使用的那一个取决于你拥有什么。默认情况下,它的-lcryptopp你能发布你用来编译程序的命令吗?执行g++.exe…g++.exe“C:\Users\Pr\Desktop\Work\encrypt\sha256\sampeSHA256.cpp”-o“C:\Users\Pr\Desktop\Work\encrypt\sha256\sampeSHA256.exe”-I“C:\Dev Cpp\l

删除
#包括

正如弗雷泽所说,使用
-L


正如弗雷泽所说,使用
-lcryptopp
-lcryptop++
。你使用的那一个取决于你拥有什么。默认情况下,它的
-lcryptopp

你能发布你用来编译程序的命令吗?执行g++.exe…g++.exe“C:\Users\Pr\Desktop\Work\encrypt\sha256\sampeSHA256.cpp”-o“C:\Users\Pr\Desktop\Work\encrypt\sha256\sampeSHA256.exe”-I“C:\Dev Cpp\lib\gcc\mingw32\3.4.2\include”-I“C:\Dev Cpp\include\C++\3.4.2\include\C++\3.4.2”-I“C:\Dev Cpp\include\C++\3.4.2”-I“C:\Dev Cpp\include”-include”-C:\Dev Cpp\include”-C:\include"您没有链接到cryptopp库,是吗?命令中不应该有一个
-lcryptopp
吗?它说-lcryptopp未找到,我应该将它指向特定的对象文件或文件夹吗?
-lcryptopp
告诉g++链接到cryptopp库。它可以被称为
libcryptopp.a
cryptopp.so
-我不确定-我不在Windows上使用g++。我认为您已经构建了CryptoPP?如果是,只需找到库并将目录路径作为
-L
标志传递(就像您已经为
-L“C:\Dev Cpp\lib”使用的那样)
。我认为pthread也是一个依赖项,您可能还需要在命令中添加
-lpthread
#include <..\cryptopp\dll.h>
#include <..\cryptopp\sha.h>
#include <..\cryptopp\hex.h>
#include<..\cryptopp\files.h>

#include <iostream>
#include<string>

using namespace std;
using namespace CryptoPP;

const int MAX_PHRASE_LENGTH=250;

int main(int argc, char *argv[]) {

CryptoPP::SHA256 hash;
byte digest[ CryptoPP::SHA256::DIGESTSIZE ];
std::string message = "Hello World!";

hash.CalculateDigest( digest, (const byte*)message.c_str(), message.length());

CryptoPP::HexEncoder encoder;
std::string output;
encoder.Attach( new CryptoPP::StringSink( output ) );
encoder.Put( digest, sizeof(digest) );
encoder.MessageEnd();

std::cout << "Input string: " << message << std::endl;
std::cout << "SHA256: " << output << std::endl;

return 0;
}