zoukankan      html  css  js  c++  java
  • 2019-2020-2 20175224 20175236 20175325 实验五 通讯协议设计

    目录


    一、任务一 Linux下OpenSSL的安装与使用
    二、任务二
    三、实验过程中遇到的问题及解决
    四、实验感想

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


    (一)OpenSSL的安装

    • 环境
      OpenSSL最新版本下载参见[http://www.openssl.org/source/]

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

    (二)OpenSSL的使用

    • OpenSSL应用程序
      通过man openssl查看帮助文档。

    • OpenSSL密码算法库
      编写一个测试代码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 -L /usr/local/ssl/lib -ldl -lpthread
    • 执行
      ./to;echo $?
      ,结果打印0.

    (三)结果如图

    二、任务二


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

    实验过程:

    • 编译
    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
    • 运行
    ./server 7838 1 CA.pem PK.pem
    ./client 127.0.0.1 7838

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


    • 问题一:在编译过程中遇到

      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
    • 问题二:在编译过程中遇到报错,且运行时报错找不到执行文件:
    • 解决过程:
      经过检查命令,发现原来是编译时忘记给执行文件命名,导致运行时找不到执行文件

    四、实验感想


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

  • 相关阅读:
    理解SQL SERVER中非聚集索引的覆盖,连接,交叉和过滤
    TSQL查询进阶流程控制语句
    效率最高的Excel数据导入(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)
    SQL Service自定义数据类型
    理解SQL SERVER中的逻辑读,预读和物理读
    TSQL查询进阶深入理解子查询
    SQL查询入门(下篇)
    使用SQL进行递归查询
    利用 sys.sysprocesses 检查 Sql Server的阻塞和死锁
    灵活运用 SQL SERVER FOR XML PATH
  • 原文地址:https://www.cnblogs.com/wff666999/p/12006632.html
Copyright © 2011-2022 走看看