花了两天时间,总算把Openssl在win2000上的适配搞定了,在此做一下总结。首先是需要的的编译环境和openssl版本。我用的是vc6.0编译器,perl用的是5.8.8.2版本,openssl为0.9.6i版本。下载链接奉上:vc6.0+perl5.8.8.2+openssl0.9.6i.zip-网络安全文档类资源-CSDN下载
接下来具体说一下编译步骤及遇到的坑:
一、安装vc6.0,安装好之后将安装路径下的VC98\Bin添加到环境变量。
二、安装perl5.8.8.2,安装好之后将安装路径下的perl\bin添加到环境变量。
三、安装openssl0.9.6i,安装好之后启动cmd切换到openssl路径下,然后执行以下操作
1、执行命令perl Configure VC-WIN32,如果执行失败,检查环境变量配置是否正确。
2、执行命令ms\do_ms,切记windows系统一定要使用反斜杠,别问我怎么知道的,都是泪。如果此命令执行不成功,可以尝试ms\do_masm和ms\do_nasm命令。
3、切换cmd路径到VC98\Bin下,执行VCVARS32.BAT脚本向系统添加环境变量。这个时候cmd会提示执行成功。
4、再次切换路径到openssl路径下,执行nmake -f ms/ntdll.mak命令。
如果一切顺利,最后的输出都在out32dll目录下 : 包括可执行文件 、两个dll和两个lib文件。本人在执行第三步的时候虽然命令行提示执行成功了,但是环境变量并没有添加成功。所以在执行第四步的时候一直提示下面的错误:
打开VCVARS32.BAT会发现在命令行输出Setting environment for using Microsoft Visual C++ tools之后还有下面的操作内容:
经过分析发现是因为没有添加环境变量INCLUDE和LIB导致的,所以根据脚本中的提示,将vc6.0安装路径下的ATL\INCLUDE、INCLUDE、MFC\INCLUDE添加环境变量INCLUDE。将LIB、MFC\LIB添加到环境变量LIB。
环境变量添加之后,重启cmd进入openssl路径执行nmake -f ms/ntdll.mak命令就会编译成功了。
接下来说一下,openssl在实际项目中的应用,vs2008是最后一个支持win2000的编译器。打开项目属性-->C/C++-->常规-->附加包含目录输入编译好的openssl库的相对路径
然后在头文件中包含
最后进行RSA加解密测试,在win2000系统上运行。
经过测试,编译出来的openssl库在win2000上可以正常加解密。