VS 中 OpenSSL 环境配置示例

网友投稿 575 2022-05-29

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

下载 OpenSSL 库

OpenSSL 库大家可以自行下载源码然后用 ruby 进行编译,另外我们也可以选择直接下载编译好的类库。 这里我们利用的后者,在此提供一个下载链接。 OpenSSL-Win32 下载完成之后解压,比如我的放到了 D 盘。

新建项目

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

1

2

3

VS 中 OpenSSL 环境配置示例

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

#include

#include

#include

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 控制台程序,空项目,完成。 新建源文件,我取名叫做 aes.cpp,将代码复制进去,可以看到代码最初是在报错的。 好,接下来我们进行环境配置。

环境配置

右键项目名称,弹出一个菜单,选择属性。 在 VC++ 目录选项卡中,添加包含目录和库目录。 在这里,我的包含目录就是刚才解压的 OpenSSL 目录的 include 目录,库目录则是 lib 目录。 注意:分号要是英文分号,英文分号! 接下来选择连接器选项卡,输入 libeay.lib 和 ssleay32.lib 两个附加依赖项。 现在右击项目,重新生成。 我们可以看到,程序可以正常生成 exe 了。 但是直接运行的话会报错,是因为缺少 dll 文件。 之后,将项目中的 libeay32.dll 和 ssleay32.dll 文件放入项目的 debug 目录即可。 最后项目的 debug 目录如下 重新运行 exe 程序,发现已经正常运行。 至此,VS 配置 OpenSSL 环境的过程已经全部完成。 其他项目类似,大家可以试着配一下。 如有问题,欢迎留言交流~

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Oracle SQL调优系列之定位生产性能问题方法
下一篇:【python】【GUI编程】tkinter的基本使用
相关文章