VS中OpenSSL环境配置示例

最近在研究信息安全,需要用到OpenSSL库,我用到的开发IDE是VS2012,所以,在这里也记录一下我配置VS2012的OpenSSL库的过程。

下载OpenSSL库

OpenSSL库大家可以自行下载源码然后用ruby进行编译,另外我们也可以选择直接下载编译好的类库。

这里我们利用的后者,在此提供一个下载链接。

OpenSSL-Win32

下载完成之后解压,比如我的放到了D盘。

20151207162627.pnguploading.4e448015.gif转存失败重新上传取消20151207162627

新建项目

首先,我们找一段测试代码,在此利用的是 AES 算法的示例。

C++

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

#include <stdio.h>

#include <openssl/aes.h>

#include <stdlib.h>

#include <string.h>

 

int main()

{

    unsigned char key[16+1] = "my-key-i-choosed"; // 128bits key (应该是真正的随机数才好)

    char pt1[16+5+1] = "0123456789abcdef12345";   // 明文

    char ct[16+5+1];  // 密文

    char pt2[16+5+1]; // 解密后的明文

 

    AES_KEY k;

    unsigned char iv1[16+1] = {"1023456789abcdef"}; // 16+1,加密用

    unsigned char iv2[16+1] = {"1023456789abcdef"}; // 16+1,解密用

 

    {    // single blcok test

        AES_set_encrypt_key(key, 16*8, &k);

        AES_encrypt((unsigned char*)pt1, (unsigned char*)ct, &k);

 

        AES_set_decrypt_key(key, 16*8, &k);

        AES_decrypt((unsigned char*)ct, (unsigned char*)pt2, &k);

 

        if (memcmp(pt1, pt2, 16)==0)

            puts("AES block ok");

        else

            puts("AES block err");

    }

 

    {    // cfb mode (stream mode)

        int num=0;

        AES_set_encrypt_key(key, 16*8, &k);

        AES_cfb128_encrypt((unsigned char*)pt1, (unsigned char*)ct,

            16+5, &k, (unsigned char*)iv1, &num, AES_ENCRYPT);

 

        num=0;

        AES_set_encrypt_key(key, 16*8, &k); // MUST as enc

        AES_cfb128_encrypt((unsigned char*)ct, (unsigned char*)pt2,

            16+5, &k, (unsigned char*)iv2, &num, AES_DECRYPT);        

 

        if (memcmp(pt1, pt2, 16+5)==0)

            puts("AES CFB mode ok");

        else

            puts("AES CFB mode err");

    }

    system("pause");

    return 0;

}

接下来新建一个项目,win32控制台程序,空项目,完成。

20151207161749.pnguploading.4e448015.gif转存失败重新上传取消20151207161749 2015120716182420151207161824.pnguploading.4e448015.gif转存失败重新上传取消20151207161824

新建源文件,我取名叫做 aes.cpp,将代码复制进去,可以看到代码最初是在报错的。

20151207162418.pnguploading.4e448015.gif转存失败重新上传取消20151207162418

好,接下来我们进行环境配置。

环境配置

右键项目名称,弹出一个菜单,选择属性。

在VC++目录选项卡中,添加包含目录和库目录。

在这里,我的包含目录就是刚才解压的OpenSSL目录的include目录,库目录则是lib目录。

注意:分号要是英文分号,英文分号!

20151207162929.pnguploading.4e448015.gif转存失败重新上传取消20151207162929

接下来选择连接器选项卡,输入libeay.lib和ssleay32.lib两个附加依赖项。

20151207163915

现在右击项目,重新生成。

我们可以看到,程序可以正常生成exe了。

20151207164034

 

但是直接运行的话会报错,是因为缺少dll文件。

20151207164304

 

之后,将项目中的libeay32.dll和ssleay32.dll文件放入项

20151207164304目的debug目录即可。

20151207164444

 

最后项目的debug目录如下

20151207164405

 

重新运行exe程序,发现已经正常运行。

20151207164736

 

至此,VS配置OpenSSL环境的过程已经全部完成。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值