openssl的安装及使用

1Windows下安装OpenSSL

下载地址:http://slproweb.com/products/Win32OpenSSL.html

以下为win32版本安装为例,安装步骤如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
恭喜,OpenSSL安装完成。
将安装目录下的bin添加到系统环境变量中,以便访问
在这里插入图片描述

2Linux下安装OpenSSL

1.下载安装包, 下载地址: https://www.openssl.org/source/
2.源码安装包解压缩

  • openssl-1.1.1c.tar.gzip 解压:
$ tar zxvf openssl-1.1.1c.tar.gzip
# 加压完成得到目录: openssl-1.1.1c

3.进入解压目录openssl-1.1.1c, 安装(可参考安装文件INSTALL):

$ ./config
$ make
$ make test 		(可选)
$ make install	 (使用管理员权限执行该命令)

4.验证安装是否成功:

$ openssl version -a
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

动态库找不到
查看:https://blog.csdn.net/bigfaceCatzzZ/article/details/104565225

执行命令,正确的输出结果:

$ openssl version -a
OpenSSL 1.1.1c  28 May 2019
built on: Fri May 31 03:54:40 2019 UTC
platform: linux-x86_64
options:  bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG
OPENSSLDIR: "/usr/local/ssl"
ENGINESDIR: "/usr/local/lib/engines-1.1"
Seeding source: os-specific

3VS中使用OpenSSL

打开VS, 创建一个空的控制台应用程序
在这里插入图片描述
设置项目属性, 打开项目的属性面板
在这里插入图片描述
添加openssl头文件目录
在这里插入图片描述
选择安装目录下的 include目录, 里边存储了openssl的头文件
在这里插入图片描述
添加openssl的库目录
在这里插入图片描述
配置完毕
在这里插入图片描述

4测试

4.1VS中相关设置

打开项目属性窗口, 添加openssl相关的库到项目中

项目属性 -> 链接器 -> 输入 -> 附件依赖项

  • libssl.lib
  • libcrypto.lib

在这里插入图片描述

测试代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include <openssl/md5.h>		// md5 头文件
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void getMD5(const char* str, char* result)
{
	MD5_CTX ctx;
	// 初始化
	MD5_Init(&ctx);
	// 添加数据
	MD5_Update(&ctx, str, strlen(str));
	// 计算结果
	unsigned char md[16] = { 0 };
	MD5_Final(md, &ctx);
	for (int i = 0; i < 16; ++i)
	{
		sprintf(&result[i * 2], "%02x", md[i]);
	}
}

int main()
{
	char result[33] = { 0 };
	getMD5("hello, md5", result);
	printf("md5 value: %s\n", result);
	system("pause");
	return 0;
}

#输出结果:
md5 value: 33b3bc8e05b4fcc16bd531dd9adac166

如出现如下错误, 参考上述 1.1小结末尾, 将 C:\OpenSSL-Win32\bin 目录配置到系统环境变量中。重新启动 VS ,重新执行即可。
在这里插入图片描述

4.2Linux下的使用和测试

  1. 编程应用程序, 测试代码如上, 文件名为 md5_test.c
  2. 通过gcc编译源文件
# 使用的动态库: libcrypto.so
$ gcc md5_test.c -o md5 -lcrypto
执行该命令, 需要加载openssl的动态库
	- libssl.so
	- libcrypto.so
网站声明: 1.本站大部分资源搜集于网络,仅代表作者观点,如有侵权请提交修改。 2.网站内容仅网站站长做个人学习摘记,任何人不得用于其他商业用途,网站发表的内容全权归原作者所有。 3.有任何疑问,可以点击右侧边栏的联系QQ进行咨询 4.本网站部分内容来自于其他网站平台的,版权归原网站所有,本网站只作信息记录,自己学习使用,特此申明,本站用户也不得使用此信息内容做其他商业用途。
白丁学者 » openssl的安装及使用