openssl源代码方式安装以及简单的实验

一、引言

这仍然是信息安全课程的一次作业,老师的要求包括以源代码方式来安装openssl,了解AES和RSA加密算法并去尝试调用openssl库中AES和RSA算法的API,其实总体上安装以及实验还是比较容易的,不过还是踩了一些坑,这里还是记录一下,顺便试试CSDN的Markdown编辑器。

本文演示使用的操作系统为Ubuntu 16.04

二、安装

1.下载源码包

从官网上可以找到源码包的下载,这里我直接给出下载链接:
openssl源码包下载
根据官网的描述,1.1.1版本将是目前他们长期支持的版本,一直到2023年,建议使用1.0.x版本的用户也去安装这个最新版本。

2.编译安装

解压下载的源码包,可以看到如下的目录结构

目录结构可以点开INSTALL文件来查看安装说明,这里我们按照它说的最简说明方式来进行安装:

on Unix (again, this includes Mac OS/X):

$ ./config
$ make
$ make test
$ sudo make install

其中最后一条命令如果不是root用户执行,需要加上sudo,否则无法访问系统根目录的一些文件夹,至少我第一次没加sudo运行时报了错。

这四条命令运行完之后都没有报错的话,说明它的安装脚本中的所有任务都完成了,这时可以使用

openssl version

命令来查看当前openssl的版本,不过我在这时遇到了问题,报错是这样的:

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

通过查找资料,这个问题也很容易就解决了,原因大概是因为libssl.so.1.1被安装脚本放置到了/usr/local/的lib下,而命令行调用的时候找的是/usr/的lib下的libssl.so.1.1,所以我们只需要用如下两条命令在/usr/的lib下创建链接文件即可:

ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1

值得一提的是,我百度到的命令的lib文件夹命名为lib64,这里一定要结合自己的情况去查看,不要直接复制命令去运行。

在解决这个问题之后,再运行之前的openssl version命令就会出现如下的显示,也说明安装成功了:

OpenSSL 1.1.1  11 Sep 2018

三、运行

1.MD5算法的实验

首先来实验一下最简单,也是最常用的MD5摘要算法,说它简单是因为它的API只有三个,用来试运行再好不过了,这里我也是参照了一位博主的一个例子来实验的,更详细的讲解可以看这篇博客:

Linux下C语言使用openssl库进行加密
用到的代码也是直接搬过来使用的,这里贴一下吧:

#include <openssl/md5.h>
#include <stdio.h>
#include <string.h>
int main()
{
   
	MD5_CTX ctx;
	unsigned char outmd[16];
	int i=0;

	memset(outmd,0,sizeof(outmd));
	MD5_Init(&ctx);
	MD5_Update(&ctx,"hel",3);
	MD5_Update(&ctx,"lo\n
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值