openssl程式設計輕鬆入門(含完整示例)

2021-06-07 23:48:50 字數 2741 閱讀 2652

openssl程式設計輕鬆入門

(含完整示例)

一見 1. 

編寫目的

第一次跑起openssl

示例並不太簡單,本文的目的是為了讓這個過程變得非常簡單。在開始之前,要非常感謝

周立發同學,正是通過他共享的示例,較輕鬆的入了門。本文件對他共享的示例中的乙個小錯誤進行了修正,並提供了傻瓜式的「編譯-

生成-key

執行」一條龍指令碼(方法請參見壓縮包中的

readme檔案

),讓跑第乙個

openssl

程式變得輕輕鬆鬆。

2. 示例包

ssl_test.tar.gz為示例源**包,

openssl-0.9.8h-suse10.tar.gz

為openssl

/usr/local/ssl

。 ssl_test.tar.gz中的示例在

suse10

中測試通過,使用的是

openssl-0.9.8h

,它包括如下檔案:

-rw-r--r-- 1 root root 1346 dec 5 18:11 cacert.pem

-rwxr-xr-x 1 root root 114 dec 5 18:11 make_key.sh

-rwxr-xr-x 1 root root 172 dec 5 18:37 mk_client.sh

-rwxr-xr-x 1 root root 172 dec 5 18:37 mk_server.sh

-rw-r--r-- 1 root root 1679 dec 5 18:11 privkey.pem

-rw-r--r-- 1 root root 167 dec 5 18:39 readme

-rwxr-xr-x 1 root root 38 dec 5 18:38 run_client.sh

-rwxr-xr-x 1 root root 64 dec 5 18:38 run_server.sh

-rwxr-xr-x 1 root root 1140142 dec 5 18:38 ssl_client

-rw-r--r-- 1 root root 3928 dec 5 17:31 ssl_client.cpp

-rwxr-xr-x 1 root root 1139667 dec 5 18:38 ssl_server

-rw-r--r-- 1 root root 4882 dec 5 17:31 ssl_server.cpp

readme

為包內容說明,

run_server.sh用來執行服務端,

run_client.sh

用來執行客戶端,

mk_server.sh

用來編譯服務端,

mk_client.sh

用來編譯客戶端,

make_key.sh

用來生成鑰匙

key。

3. 什麼是ssl?

在學習openssl

程式設計之前,先了解一下什麼是

ssl,有助於後續的學習。

ssl 是乙個縮寫,代表的是 

secure sockets layer

。它是支援在 

internet 

上進行安全通訊的標準,並且將資料密碼術整合到了協議之中。資料在離開您的計算機之前就已經被加密,然後只有到達它預定的目標後才被解密。證書和密碼學演算法支援了這一切的運轉,使用 

openssl

,您將有機會切身體會它們。

理論上,如果加密的資料在到達目標之前被擷取或竊聽,那些資料是不可能被破解的。不過,由於計算機的變化一年比一年快,而且密碼翻譯方法有了新的發展,因此,ssl 

中使用的加密協議被破解的可能性也在增大。可以將 

ssl 

和安全連線用於 

internet 

上任何型別的協議,不管是 

,還是 

ftp。還可以用 

ssl 

來保護 

telnet 

會話。雖然可以用 

ssl 

保護任何連線,但是不必對每一類連線都使用 

ssl。如果連線傳輸敏感資訊,則應使用 

ssl。

4. 什麼是openssl?

openssl 不僅僅是 

ssl。它可以實現訊息摘要、檔案的加密和解密、數字證書、數字簽名和隨機數字。關於 

openssl 

庫的內容非常多,遠不是一篇文章可以容納的。

openssl 不只是 

api,它還是乙個命令列工具。命令列工具可以完成與 

api 

同樣的工作,而且更進一步,可以測試 

ssl 

伺服器和客戶機。

5. 示例程式

示例的說明請參見下面這篇

周立發共享的文章。

6. 服務端編寫步驟

7. 客戶端編寫步驟

8. 相關標頭檔案

8.1. 

socket標頭檔案

#include 

#include 

#include 

#include 

8.2. 

ssl標頭檔案

#include 

#include 

9. 結尾上面步驟應當畫得比較清楚了,結合圖再對照ssl_test.tar.gz

和《加密通訊協議

ssl程式設計

.pdf

》就可以非常快地上手了。

openssl程式設計輕鬆入門(含完整示例)

2012 06 04 23 50 31 openssl程式設計輕鬆入門 含完整示例 一見1.編寫目的 第一次跑起openssl 示例並不太簡單,本文的目的是為了讓這個過程變得非常簡單。在開始之前,要非常感謝 周立發同學,正是通過他共享的示例,較輕鬆的入了門。本文件對他共享的示例中的乙個小錯誤進行了修...

openssl程式設計輕鬆入門(含完整示例)

編寫目的 第一次跑起openssl 示例並不太簡單,本文的目的是為了讓這個過程變得非常簡單。在開始之前,要非常感謝 周立發同學,正是通過他共享的示例,較輕鬆的入了門。本文件對他共享的示例中的乙個小錯誤進行了修正,並提供了傻瓜式的 編譯 生成 key 執行 一條龍指令碼 方法請參見壓縮包中的 read...

題目 1017 程式設計入門 完數的判斷

題目描述乙個數如果恰好等於不包含它本身所有因子之和,這個數就稱為 完數 例如,6的因子為1 2 3,而6 1 2 3,因此6是 完數 程式設計序找出n 1000之內的所有完數,並按下面格式輸出其因子。解題思路 本題需要逐個數的去判斷是否是完數,如果是再輸出其因子。部分 先設定乙個for迴圈,然後在設...