openssl程式設計

2021-07-03 06:02:41 字數 2417 閱讀 9532



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

2012-06-04 23:50:31

分類: c/c++

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

易劍 2008/12/5

目錄 1

1. 編寫目的 1

2. 示例包 1

3. 什麼是ssl? 2

4. 什麼是openssl? 2

5. 示例程式 2

6. 服務端編寫步驟 3

7. 客戶端編寫步驟 4

8. 相關標頭檔案 4

8.1. socket標頭檔案 4

8.2. ssl標頭檔案 4

9. 結尾 5

第一次跑起openssl示例並不太簡單,本文的目的是為了讓這個過程變得非常簡單。在開始之前,要非常感謝周立發同學,正是通過他共享的示例,較輕鬆的入了門。

本文件對他共享的示例中的乙個小錯誤進行了修正,並提供了傻瓜式的「編譯-生成-key執行」一條龍指令碼(方法請參見壓縮包中的readme檔案),讓跑第乙個openssl程式變得輕輕鬆鬆。

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。

在學習openssl程式設計之前,先了解一下什麼是ssl,有助於後續的學習。ssl 是乙個縮寫,代表的是 secure sockets layer。它是支援在 internet 上進行安全通訊的標準,並且將資料密碼術整合到了協議之中。資料在離開您的計算機之前就已經被加密,然後只有到達它預定的目標後才被解密。證書和密碼學演算法支援了這一切的運轉,使用 openssl,您將有機會切身體會它們。

理論上,如果加密的資料在到達目標之前被擷取或竊聽,那些資料是不可能被破解的。不過,由於計算機的變化一年比一年快,而且密碼翻譯方法有了新的發展,因此,ssl 中使用的加密協議被破解的可能性也在增大。可以將 ssl 和安全連線用於 internet 上任何型別的協議,不管是 http、pop3,還是 ftp。還可以用 ssl 來保護 telnet 會話。雖然可以用 ssl 保護任何連線,但是不必對每一類連線都使用 ssl。如果連線傳輸敏感資訊,則應使用 ssl。

openssl 不僅僅是 ssl。它可以實現訊息摘要、檔案的加密和解密、數字證書、數字簽名和隨機數字。關於 openssl 庫的內容非常多,遠不是一篇文章可以容納的。

openssl 不只是 api,它還是乙個命令列工具。命令列工具可以完成與 api 同樣的工作,而且更進一步,可以測試 ssl 伺服器和客戶機。

示例的說明請參見下面這篇周立發共享的文章。

上面步驟應當畫得比較清楚了,結合圖再對照ssl_test.tar.gz和《加密通訊協議ssl程式設計.pdf》就可以非常快地上手了。

openssl程式設計easy demo

目錄 1 1.編寫目的 1 2.示例包 1 3.什麼是ssl?2 4.什麼是openssl?2 5.示例程式 2 6.服務端編寫步驟 3 7.客戶端編寫步驟 4 8.相關標頭檔案 4 8.1.socket標頭檔案 4 8.2.ssl標頭檔案 4 9.結尾 5 第一次跑起openssl示例並不太簡單,...

openssl常用函式 SSL TLS程式設計

ssl tls 協議已經廣泛應用於電子商務中,用來保證資訊傳輸的安全性。利用 openssl 進行安全套接字程式設計和普通套接字程式設計類似。主要函式 1.初始化 ssl演算法庫函式 int ssl library init void define openssl add ssl algorithm...

OpenSSL 常用函式 SSL TLS程式設計

ssl tls 協議已經廣泛應用於電子商務中,用來保證資訊傳輸的安全性。利用 openssl 進行了安全套接字程式設計和普通套接字程式設計類似。主要函式 1 初始化 ssl演算法庫函式 int ssl library init void define openssl add ssl algorith...