C++ 使用Poco库进行MD5,SHA加密
flyfish
头文件
#include#include #include #include #include
MD5加密
std::string string_to_md5(std::string source)
{
Poco::MD5Engine md5;
Poco::DigestOutputStream dos(md5);
std::istringstream istr(source);
Poco::StreamCopier::copyStream(istr, dos);
dos.close();
return Poco::DigestEngine::digestToHex(md5.digest());
}
SHA256加密
std::string to_sha(std::string source)
{
Poco::SHA2Engine sha;
Poco::DigestOutputStream dos(sha);
std::istringstream istr(source);
Poco::StreamCopier::copyStream(istr, dos);
dos.close();
return Poco::DigestEngine::digestToHex(sha.digest());
}
计算文件md5
std::string file_to_md5( std::string& file_path) {
Poco::MD5Engine md5;
Poco::DigestOutputStream dos(md5);
std::ifstream f(file_path);
Poco::StreamCopier::copyStream(f, dos);
dos.close();
return Poco::DigestEngine::digestToHex(md5.digest());
}
调用
int main()
{
std::string source="a";
std::string r1=string_to_md5(source);
std::cout << r1 << std::endl;//0cc175b9c0f1b6a831c399e269772661
std::string r2=to_sha(source);
std::cout << r2 << std::endl;//ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb
}



