網路安全傳輸系統 3 OpenSSL加密傳輸

2021-09-26 18:32:19 字數 3840 閱讀 4952

1.基本介紹

1.1 未加密傳輸的安全弊端

1.2 加密基本原理

1.3 數字證書

1.4 ssl協議

openssl:openssl 是乙個強大的安全套接字層密碼庫,囊括主要的密碼演算法、常用的金鑰和證書封裝管理功能及ssl協議,並提供豐富的應用程式供測試或其它目的使用。

2.openssl移植

2.1 解壓

2.2 配置

2.3 修改makefile

2.4 編譯

2.5 安裝

生成的庫檔案在_install/lib中,拷貝到開發根目錄/lib中。

3.openssl程式設計

ssl_ctx *ctx;//ssl套接字

ssl *ssl;

void links()

//連線

memset(&sockaddr, 0, sizeof(sockaddr));

sockaddr.sin_family = af_inet;

sockaddr.sin_port = htons(port);

sockaddr.sin_addr.s_addr = inet_addr(ipaddr);

if (connect(sockfd, (struct sockaddr *)&sockaddr, sizeof(sockaddr)) == -1)

ssl = ssl_new(ctx);

ssl_set_fd(ssl, sockfd);

if (ssl_connect(ssl) == -1)

else }

void upload_file(char *filename)

//關閉檔案

close(fd);

}void download_file(char *filename)

//接收資料

ssl_read(ssl, &filesize, 4);

while ((count = ssl_read(ssl, (void *)buf, 1024)) > 0)

//關閉檔案

close(fd);

}void quit()

void menu()

break;

case '2':

break;

case '3':

break;

default:

break;

} }}int main(int argc, char *args)

strcpy(ipaddr, args[1]);

//初始化ssl

ssl_library_init();

openssl_add_all_algorithms();

ssl_load_error_strings();

ctx = ssl_ctx_new(sslv23_client_method());//建立ssl套接字,引數表明支援版本和客戶機

if (ctx == null)

//建立連線

links();

//列印選單

menu();

//結尾操作

close(sockfd);

//釋放ctx

ssl_ctx_free(ctx);

return 0;

}伺服器端**:

#include#include#include#include#include#include#include#include#include #include #define port 3333

int sockfd, newfd;

struct sockaddr_in sockaddr;

struct sockaddr_in client_addr;

int sin_size;

ssl_ctx *ctx;

ssl *ssl;

void handle(char cmd)

; int filenamesize = 0;

int fd;

int filesize = 0;

int count = 0, totalrecv = 0;

char buf[1024];

struct stat fstat;

switch (cmd)

//接收檔案長度

ssl_read(ssl, &filesize, 4);

//接收檔案

while ((count = ssl_read(ssl, (void *)buf, 1024)) > 0)

//關閉檔案

close(fd);

} break;

case 'd':

//傳送檔案包括檔案長度

if ((stat(filename, &fstat)) == -1)

return;

ssl_write(ssl, &fstat.st_size, 4);

while ((count = read(fd, (void *)buf, 1024)) > 0)

close(fd);

} break; }}

int main()

memset(&sockaddr, 0, sizeof(sockaddr));

sockaddr.sin_family = af_inet;

sockaddr.sin_port = htons(port);

sockaddr.sin_addr.s_addr = htonl(inaddr_any);

// 繫結位址

if (bind(sockfd, (struct sockaddr *)&sockaddr, sizeof(sockaddr)) == -1)

// 監聽

if (listen(sockfd, 10) == -1)

while (1)

ssl = ssl_new(ctx);// 產生新的ssl

ssl_set_fd(ssl, newfd);

ssl_accept(ssl);

// 處理事件

while (1)

else

}ssl_shutdown(ssl);

ssl_free(ssl);

close(newfd); }

close(sockfd);

ssl_ctx_free(ctx);

return 0;

}

網路安全傳輸系統 2 框架搭建

因此對於上傳檔案客戶機和伺服器分別遵循如下順序 客戶機 伺服器 2.原始碼 include include include include include include include include include define port 3333 char ipaddr 15 int sock...

HTTPS 網路安全傳輸協議下的訪問

https http 超文字傳輸協議 ssl 安全連線層 http 的安全版本.https 會專門建立乙個 安全的資料傳輸通道來傳輸資料,外界拿不到任何資料,現階段最安全的協議,目前在 http 模式下三大運營商傳送的惡意廣告氾濫,並且可以獲得使用者的個人資訊,知乎有專門文章講解如何到工信部投訴的內...

網路安全審計系統

網路安全審計系統針對網際網路行為提供有效的行為審計 內容審計 行為報警 行為控制及相關審計功能。從管理層面提供網際網路的有效監督,預防 制止資料洩密。滿足使用者對網際網路行為審計備案及安全保護措施的要求,提供完整的上網記錄,便於資訊追蹤 系統安全管理和風險防範。作用行為審計 內容審計 行為報警 背景...