VC++6.0环境下利用openssl编程入门(以计算md5值为例)的全解析

做软件开发的人, 基本都应该听说过大名鼎鼎的开源软件openssl, 下面, 我们来入门openssl编程吧。 初学者如果想了解openssl编程, 最不喜欢是: 还没有懂怎么利用openssl是怎么个玩法, 就不得不学openssl本身的编译。 在本文中, 我直接省略如何编译openssl这个过程, 直接把编译的最后结果(库和头文件)提供给大家, 希望大家能用得上。先用openssl来玩一下, 感觉有趣的话, 再去学学openssl的编译。

下面来进行详细的介绍, 介绍openssl的使用(而不是openssl的库的编译):

1. 首先在我的博客资源中下载Win32OpenSSL-1_0_1.rar, 然后解压得到Win32OpenSSL-1_0_1.exe, 对了, 我马上就上传到我的csdn资源中, 免费提供, 不需要积分哈, 不要害怕, 动起来。

2. 安装Win32OpenSSL-1_0_1.exe, 主要是为了得到编译好的openssl库和头文件。 安装后, 在安装目录中有OpenSSL-Win32这个文件夹, 我是直接安装在C盘里面的, 所以其目录是:C:\OpenSSL-Win32, 在这个C:\OpenSSL-Win32目录下, 有很多openssl的库和头文件, 截图给大家看看, 方便大家核对:

3. 在VC++6.0中建立代码文件main.cpp(这个过程我就不讲了), 随后要记得增加对C:\OpenSSL-Win32目录下的库和头文件的索引, 方法是, 选择菜单栏中的"Tools", 然后选择“Options…”, 然后添加索引, 如图:

好了, 至此为止, VC++就增加了对openssl的索引, 前戏已经搞完,, 可以开始做正事了。

4. man.cpp中的C++代码为:

#include <iostream>#include <openssl/md5.h> // 如果你直接拷贝我的程序运行, 那注定找不到md5.h#pragma comment(lib, "libeay32.lib")#pragma comment(lib, "ssleay32.lib") // 在本程序中, 可以注释掉这句using namespace std;int main(){const char *data = "hello world"; // 原始数据unsigned char md[16] = {0};MD5_CTX ctx;MD5_Init(&ctx);MD5_Update(&ctx, data, strlen(data));MD5_Final(md, &ctx);int i = 0;char buf[33] = {0};char tmp[3] = {0};for(i = 0; i < 16; i++ ){sprintf(tmp,"%02X", md[i]);strcat(buf, tmp);}cout << buf << endl; // data的md5值return 0;} 5. 编译, 连接, 运行上述程序, 结果为:5EB63BBBE01EEED093CB22BB8F5ACDC3, 而用其他工具计算出来的结果也为:5EB63BBBE01EEED093CB22BB8F5ACDC3. 可见, 上述程序的结果是正确的。

完毕, 又是小小的兴奋, 是该睡觉了

想念我的时候,不要忘记我也在想念你。

VC++6.0环境下利用openssl编程入门(以计算md5值为例)的全解析

相关文章:

你感兴趣的文章:

标签云: