VC++6.0环境下利用openssl编程入门(以计算md5值为例)的全解析------openssl库直接给大家弄好, 省得麻烦大家去编译

来源:互联网 发布:json在线压缩工具 编辑:程序博客网 时间:2024/06/14 03:16

        做软件开发的人, 基本都应该听说过大名鼎鼎的开源软件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.  可见, 上述程序的结果是正确的。

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





1 0
原创粉丝点击