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

972 篇文章 327 订阅
7 篇文章 2 订阅

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

 

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

 

 

 

 

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 27
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值