2012-06-04 23:50:31
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程式設計
》就可以非常快地上手了。
openssl程式設計輕鬆入門(含完整示例)
openssl程式設計輕鬆入門 含完整示例 一見 1.編寫目的 第一次跑起openssl 示例並不太簡單,本文的目的是為了讓這個過程變得非常簡單。在開始之前,要非常感謝 周立發同學,正是通過他共享的示例,較輕鬆的入了門。本文件對他共享的示例中的乙個小錯誤進行了修正,並提供了傻瓜式的 編譯 生成 ke...
openssl程式設計輕鬆入門(含完整示例)
編寫目的 第一次跑起openssl 示例並不太簡單,本文的目的是為了讓這個過程變得非常簡單。在開始之前,要非常感謝 周立發同學,正是通過他共享的示例,較輕鬆的入了門。本文件對他共享的示例中的乙個小錯誤進行了修正,並提供了傻瓜式的 編譯 生成 key 執行 一條龍指令碼 方法請參見壓縮包中的 read...
題目 1017 程式設計入門 完數的判斷
題目描述乙個數如果恰好等於不包含它本身所有因子之和,這個數就稱為 完數 例如,6的因子為1 2 3,而6 1 2 3,因此6是 完數 程式設計序找出n 1000之內的所有完數,並按下面格式輸出其因子。解題思路 本題需要逐個數的去判斷是否是完數,如果是再輸出其因子。部分 先設定乙個for迴圈,然後在設...