C++使用vs2015进行字符串md5加密

有些时候,我们需要使用C++进行字符串的md5加密,这就需要使用openssl中的md5库了,在我的另外一篇博客中讲解了如何创建OpenSSL动态库,这里就不在讲解了,不知道怎么生成的去看那篇博客。
使用vs2015新建一个C++控制台程序,项目的属性配置如下
包含目录引入OpenSSL的头文件
在这里插入图片描述
库目录引入OpenSSL的lib文件目录
在这里插入图片描述
链接器-输入-附加依赖项里添加lib文件的名称
libcrypto.lib
libssl.lib
在这里插入图片描述
接下来把动态库dll文件移动到项目程序的运行目录里,也就是exe程序所在目录
在这里插入图片描述
下面为自己写的md5加密函数

#include<iostream>
#include<string>
#include<openssl\md5.h>
using namespace std;

string MD5(const string& src)
{
	MD5_CTX ctx;

	string md5_string;
	unsigned char md[16] = { 0 };
	char tmp[33] = { 0 };

	MD5_Init(&ctx);
	MD5_Update(&ctx, src.c_str(), src.size());
	MD5_Final(md, &ctx);

	for (int i = 0; i < 16; ++i)
	{
		memset(tmp, 0x00, sizeof(tmp));
		//%02X生成的16进制中字母为大写的
		//%2.2x生成的16进制中字母为小写的
		sprintf(tmp, "%2.2x", md[i]);
		md5_string += tmp;
	}
	return md5_string;
}


int main()
{
	string s1 = "keras";
	s1 = MD5(s1);
	cout << s1 << endl;
	getchar();
	return 0;
}

生成结果如下:

063009bb15c8272bd0c701cfdf011622

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章