2017-2018-1 20155231 实验五 通讯协议设计
2017-2018-1 20155231 实验五 通讯协议设计
实验目的:Linux下OpenSSL的安装与使用
实验步骤:
1
- 下载openSSL;
- 下载后已经自动解压。所以省略了
tar xzvf openssl-1.1.0-pre1.tar.gz
解压源代码这一步;
- 进入源代码目录编译安装:
./configure
make
sudo make install
- 并使用
make test
测试
- 编写测试代码test_openssl.c:
#include <stdio.h>
#include <openssl/evp.h>
int main(){
OpenSSL_add_all_algorithms();
return 0;
}
- 使用命令编译
gcc -o to test_openssl.c -I /usr/local/ssl/inlcude /usr/local/ssl/lib -ldl -lpthread
- 使用命令运行
./to;echo $?
-
打印0
-
研究OpenSSL算法,测试对称算法中的AES,非对称算法中的RSA,Hash算法中的MD5
-
AES的用法如下:
openssl enc -aes-128-cbc -in plain.txt -out out.txt -pass pass:123456 //密码123456
RSA 的用法如下:
openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg]
[-sgckey] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id]
常用选项:
-in filename:指明私钥文件
-out filename:指明将提取出的公钥保存至指定文件中
-pubout:根据私钥提取出公钥
MD5 的用法如下:
openssl passwd -1 -in test.txt -salt 12345678
生成密码需要使用的标准命令为
passwd
,用法如下:
openssl passwd [-crypt] [-1] [-apr1] [-salt string] [-in file] [-stdin] [-noverify] [-quiet] [-table] {password}
常用选项有:
-1:使用md5加密算法
-salt string:加入随机数,最多8位随机数
-in file:对输入的文件内容进行加密
-stdion:对标准输入的内容进行加密
2. 在Ubuntu中实现对实验二中的“wc服务器”通过混合密码系统进行防护
代码链接
成果截图:
遇到的问题:
- 下载版本出错;解决:重新下载
- 测试代码运行未通过;解决:与.o .h文件链接,更改编译命令。