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

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