下载openssl编译好后得到lib,dll,源文件等;
添加opensll入构建路径:工具->选项->目录:include file和library file路径
在vc添加 libeay32.lib:工程->设置->连接:添加libeay32.lib
然后编译运行:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <openssl/evp.h>
#pragma comment(lib,"libeay32MD.lib")
#pragma comment(lib,"ssleay32MD.lib")
int my_md5(char* data,char* result){
unsigned char md_value[EVP_MAX_MD_SIZE];
unsigned int i,md_len;
EVP_MD_CTX mdctx;
EVP_MD_CTX_init(&mdctx);
EVP_DigestInit_ex(&mdctx,EVP_md5(),NULL);
EVP_DigestUpdate(&mdctx,data,strlen(data));
EVP_DigestFinal_ex(&mdctx,md_value,&md_len);
EVP_MD_CTX_cleanup(&mdctx);
char temp[EVP_MAX_MD_SIZE];
for(i=0;i<md_len;i++){
sprintf(temp,"%02x",md_value[i]);
strcat(result,temp);
}
return md_len;
}
//md5.exe "明文" -count 5
int main(int argc,char *argv[]){
int count=1;
if(argc<2){
printf("Usage:md5.exe <-data> <-count argv>\n");
return 0;
}
char reuslt[1024] = {0};
int md_len = my_md5(argv[1], reuslt);
printf("%s", reuslt);
return 0;
}
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.c
LIBS+=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
win32: LIBS += -L$$PWD/../openssl-vs2013/lib64/ -llibeay32MTd
INCLUDEPATH += $$PWD/../openssl-vs2013/include64
DEPENDPATH += $$PWD/../openssl-vs2013/include64
win32: LIBS += -L$$PWD/../openssl-vs2013/lib64/ -lssleay32MTd
INCLUDEPATH += $$PWD/../openssl-vs2013/lib64
DEPENDPATH += $$PWD/../openssl-vs2013/lib64
附上 vs2010编译openssl方法:
1.下载 OpenSSL http://www.openssl.org/,并解压到d:\openssl-1.0.1e目录(也可自己指定路径和目录名称)
2.下载 from http://www.activestate.com/ActivePer,并安装,并在环境变量中添加path=d:\perl\bin(d:\perl为perl的安装路径)
3.建一个存放opensll库文件的目录,此处指定为d:\openssl_lib
4.打开2010控制台:开始-所有程序—Microsoft visual studio2010——Visual Studio Tools——Visual Studio 2010命令提示
5.进入opensll源代码目录路径
cd d:\openssl-1.0.1e
6.按顺序执行下列命令
d:\openssl-1.0.1e> perl Configure VC-WIN32 no-asm --prefix=d:\openssl_lib (存放编译后的库文文件目录)
d:\openssl-1.0.1e> ms\do_ms
d:\openssl-1.0.1e> nmake -f ms\ntdll.mak (编译动态库)(约5分钟左右)
d:\openssl-1.0.1e> nmake -f ms\nt.mak (编译静态库)
7.装载openssl到指定的目录d:\opensll_lib中
d:\openssl-1.0.1e> nmake -f ms\ntdll.mak install
d:\openssl-1.0.1e> nmake -f ms\nt.mak install
完成编译
二.在vs2010中使用openssl
二、使用OpenSSL
1.新建一个工程。
2.设置目录参数
右击工程名——属性——
1)配置属性——VC++目录——在include目录中新增"d:\openssl_lib\include"(存放编译后的库文件的目录中);
2)VC++目录——"Library files"选择中新增目录"d:\openssl_lib\lib"。
3)配置属性——链接器——输入——附加依赖项——libeay32.lib 和ssleay32.lib即可
参考文献:
1.openssl-1.0.1e/ms/install.W32
2.http://blog.csdn.net/xhydra/article/details/12517135
3.http://www.cppblog.com/everett/archive/2012/07/13/183072.html
http://blog.163.com/xiaoting_hu/blog/static/50464772201310415042524/