目錄 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程式設計
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...
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...