博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018-2019-1 20165226_20165310_20165315 实验五 通讯协议设计
阅读量:7001 次
发布时间:2019-06-27

本文共 1642 字,大约阅读时间需要 5 分钟。

2018-2019-1 20165226_20165310_20165315 实验五 通讯协议设计

目录


一、任务一 Linux下OpenSSL的安装与使用


(一)OpenSSL的安装

  • 环境

    OpenSSL最新版本下载参见[]

  • 安装过程
    Linux下的应用大多可以直接使用,也可以获取源代码自己进行编译、安装,使用源代码安装的过程一般是:
configuremakemake install
  • OpenSSL的安装也是这样。首先解压源代码:tar xzvf openssl-1.1.0-pre1.tar.gz
  • 然后进入源代码目录:cd openssl-1.1.0-pre1
  • 然后使用下列命令编译安装:
./configuremakesudo make install

(二)OpenSSL的使用

  • OpenSSL应用程序

    通过man openssl查看帮助文档。

  • OpenSSL密码算法库
    编写一个测试代码test_openssl.c:
#include 
#include
int main(){ OpenSSL_add_all_algorithms(); return 0;}
  • 然后用下面命令编译:
gcc -o to test_openssl.c -I /usr/local/ssl/inlcude -L /usr/local/ssl/lib -ldl -lpthread
  • 执行./to;echo $?,结果打印0.

(三)结果如图

1047870-20181216162809264-252649028.png

二、任务二


在Ubuntu中实现对实验二中的“wc服务器”通过混合密码系统进行防护

1293911-20181216142719557-1672297879.png

实验过程:

  • 编译

gcc -o server server.c -I /usr/local/ssl/include -L/usr/local/ssl/lib -lssl -lcrypto -ldl -lpthread

gcc -o client client.c -I /usr/local/ssl/include -L/usr/local/ssl/lib -lssl -lcrypto -ldl -lpthread

  • 创建私钥和证书

openssl genrsa -out PK.pem 1024

openssl req -new -x509 -key PK.pem -out CA.pem -days 1095

1293911-20181216143804328-563772660.png

  • 运行

./server 7838 1 CA.pem PK.pem

./client 127.0.0.1 7838

1293911-20181216143823298-1916428398.png

三、实验过程中遇到的问题及解决


  • 问题一:在编译过程中遇到openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory错误

  • 解决过程:

    这是由于openssl库的位置不正确造成的。需要执行如下指令:

ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1

ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

详见中的解决方法。

  • 问题二:在编译过程中遇到如下报错,且运行时报错找不到执行文件:

1293911-20181216143744157-1823974887.png

  • 解决过程:
    经过检查命令,发现原来是编译时忘记给执行文件命名,导致运行时找不到执行文件

四、实验感想


这次实验比较简单,主要是要按照实验步骤,一步步深入理解Openssl编程。在实验中,我们小组三个人相互配合,遇到问题一起解决,虽然也犯了低级错误,但是最后实验的成功进行仍然体现了团队合作的优势。而且学姐的博客也给我们指引了道路,十分详细。

转载于:https://www.cnblogs.com/musea/p/10126976.html

你可能感兴趣的文章
Unity项目中的资源管理
查看>>
MD5
查看>>
用node写个简单的静态服务器
查看>>
H5前端性能测试小结
查看>>
跟我学习Spring Security--在线宠物商店开发(二)
查看>>
css position: absolute、relative详解
查看>>
Linux下Redis-3.0.7版本的安装以及Redis主备的部署(二)
查看>>
<context:property-placeholder>标签实现参数剥离
查看>>
centos-yum
查看>>
mysqldump备份中恢复单张表
查看>>
Outlook 2013 中的基本任务
查看>>
TCP 建立和关闭
查看>>
EDM营销构成的五个因素详解
查看>>
Vcenter数据采集之maven打包可执行jar血历史
查看>>
ip协议号大全
查看>>
juniper的一些基本命令
查看>>
cocos2d-x学习之CCDictionary中的一个小问题
查看>>
运维少年系列 - ansible and cisco(2)
查看>>
我的友情链接
查看>>
Android 动画之TranslateAnimation应用详解
查看>>