日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言ssl通信,利用 OpenSSL 的 C/S 安全通信程序设计

發布時間:2024/9/27 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言ssl通信,利用 OpenSSL 的 C/S 安全通信程序设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

本項目是《網絡安全協議》的實驗二 “利用 OpenSSL 的 C/S 安全通信程序設計” 的項目。

本項目是 基于 Linux 平臺、 gcc 編譯、 OpenSSL 依賴庫環境 下進行編寫的。

所以可能會出現在 Windows 平臺上無法編譯的情況。

開發環境

函數說明

項目程序

驗收后發布。

編譯、運行

解壓

解壓項目 zip 包。

unzip openssl-c-s.zip

進入解壓的項目目錄:

cd openssl-c-s/

修改代碼中服務端 IP

修改 src/server.c 和 src/client.c 中的參數:

char *ip_server = "172.17.0.3";

int port_server = 5223;

ip_server :初始為 172.17.0.3 ,應修改為要執行 server 服務端可執行文件的 Linux 主機的 IP 。

port_server :可隨意設置為沒有占用且開放的端口。

注意:兩個文件都要修改,且相同。

編譯

在項目目錄 openssl-c-s/ 下,執行:

make

即可編譯所需文件。

恢復未編譯之前的初始狀況,刪除所有編譯生成的文件:

make clean

運行

需要打開兩個 Linux 主機,每個主機都要打開一個終端控制臺,且都要進入目錄 openssl-c-s/ 。

也可以使用 docker 創建運行兩個容器來執行。

docker 容器列表 :

服務端 opensll-s IP :172.17.0.3 。

客戶端 opensll-c IP :172.17.0.4 。

將項目復制到這兩個容器中。

容器中可以看到:

opensll-s 容器先執行服務端可執行文件:

./server

opensll-c 容器先執行客戶端可執行文件:

./client

這時服務連通,SSL 連接建立,可以通信。

更多功能說明、截圖:基礎功能實現和擴展 。

項目結構

樹狀圖

共有 4 個文件夾,12 個文件。

$ tree openssl-c-s/

openssl-c-s/

├── README.md

├── bin

│?? ├── client.out

│?? └── server.out

├── certificate

│?? ├── serverCert.cer

│?? └── serverKey.pem

├── client -> bin/client.out

├── include

│?? └── get_ip_addr.h

├── makefile

├── server -> bin/server.out

└── src

├── client.c

├── get_ip_addr.c

└── server.c

4 directories, 12 files

結構說明

文件夾

bin/ : 包含最終結果的可執行文件。

certificate/ :包含服務器證書和私鑰。

include/ : 包含使用到的自定義頭文件。

src/ : 包含所有的 .c 源文件。

文件

主目錄下:

makefile : 描述了整個項目的編譯、鏈接等規則。

RAEDME.md :使用 Markdown 語法的說明文件。

make 命令:編譯、鏈接目標文件,生成 bin/server.out 到 server 的軟連接等等。

- make clean 命令:使用 clean 偽目標,執行定義的刪除相關文件指令,。

server :make 生成的指向 bin/server.out 的軟鏈接文件。

client :make 生成的指向 bin/client.out 的軟鏈接文件。

bin/ 目錄下:

bin/client.out :項目客戶端的可執行文件。

bin/server.out :項目服務器的可執行文件。

certificate/ 目錄下:

serverCert.cer :openssl 命令生成的服務器證書。

serverKey.pem :openssl 命令生成的服務器密鑰。

include/ 目錄下:

get_ip_addr.h : 對 src/get_ip_addr.c 中函數的聲明、暴露接口給外部使用。

src/ 目錄下:

client.c :項目客戶端的 .c 源文件。

get_ip_addr.c :項目核查服務端 IP 的 .c 源文件。

server.c :項目服務端的 .c 源文件。

基礎功能實現和擴展

實驗要求:編程實現基于 OpenSSL 的客戶端、服務器安全通信的程序。

擴展功能 1:添加說明。

對于關鍵的步驟,添加了說明,比如監聽端口或 SSL 握手請求等等。

擴展功能 2:循環輸入,不輸入 quit 不終止。

擴展功能 3:客戶端聊天中輸入 quit ,結束聊天,但服務器等待新的客戶端請求。

擴展功能 4:服務器等待新的客戶端請求,并與之連接。

擴展功能 5:服務器聊天中輸入 quit ,客戶端程序同時結束

原文:https://www.cnblogs.com/Yogile/p/12924034.html

總結

以上是生活随笔為你收集整理的c语言ssl通信,利用 OpenSSL 的 C/S 安全通信程序设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。