openssl和cryptlib簡介

Openssl主要是針對SSL協議的實現,SSL的功能體現的非常完善.而算法庫只是一個附帶部分.Openssl分成3個主要的部分.SSL庫、加密庫和應用程序部分,應用程序部分現在被人用的較多(改成自己的產品或再開發:)))如果你想很快的入門加密領域應用,理解openssl的結構會有很大幫助。

Cryptlib我用的少一點,感覺主要是針對加解密算法的實現的。對SSL協議好像涉及的不
多。

在代碼方面:Openssl用標準C寫的,結構比較混亂,源程序的功能模塊不容易剝離,代碼也不容易看
懂,調用關係比較混亂。Cryptlib是按類來組織的,結構比較清晰,代碼的剝離也相對
容易多了。

建議:如果你要做的事情不涉及SSL協議,建議使用Cryptlib,這樣更容易實現你自己的算法。

如果涉及SSL協議和其它一些安全標準而又不想做太多工作,openssl是一個很好的選擇,但是要做好研讀它的可怕的源代碼的起步階段。

ssl的加密過程:  壓縮---》mac---》對稱加密---》tcp/ip


=========================================================================================
目前開放源代碼的加密庫中,openssl和cryptlib都是比較流行的,本文將根據自己的一點理解對這兩個庫作一些比較,希望能對大家有用。這兩個庫的構造思想和目的都不太一樣. Openssl主要是針對SSL/TLS協議的實現,SSL的功能體現的非常完善,而算法庫只是一個附帶的必要部分,當然也是非常重要和完善的一個部分。Crypylib則就是實現了加密算法以及相關的一些編碼標準。
【openssl的組成和特點】
openssl是一個非常優秀的SSL/TLS開放源碼軟件包,它包括SSL庫、加密算法庫以及應用程序三大部分,並提供了測試程序和一些應用例子,實現了SSL/TLS協議和其相關的PKI標準。openssl因爲開發的比較早,所以採用了c語言作爲編寫的語言,但是,openssl裏面確可以找到很多面向對象的思想,如BIO的封裝就是一個典型的例子。對於剛剛開始接觸openssl的技術人員來說,可能會覺得有點困難,因爲openssl的結構非常膨大,即便要閱讀完其非常不完善的文檔,工作量也是非常膨大的。建議開始接觸openssl的時候,除了有一些基本的密碼學和PKI的概念外,最好從使用它提供的一些應用程序開始。其實,openssl的應用程序已經很完善,許多CA就是基於這些基礎上做成的。
對於很多人來說,openssl應用程序就足以完成他們需要的功能,openssl應用程序主要提供了下列的一些功能:
1.各種類型密鑰以及密鑰參數的生成和格式轉換功能
2.使用各種加密算法進行數據加密的功能
3.證書請求、證書生成和簽發以及證書其它相關標準的轉換功能,實現了一個CA的功能
4.信息摘要算法以及其相關編碼的實現
5.SSL協議模擬客戶端和服務器端的實現,可以用來測試SSL服務器和SSL客戶端程序。
【Cryptlib的組成和特點】
Cryptlib實現了各種公開密鑰算法、對稱加密算法、數字簽名算法、信息摘要算法以及其相關的其它算法等等。它採用C++語言編寫而成,因爲是面嚮對象語言,所以對於初學者來說更容易理清其結構。該庫沒有提供應用程序,只是作爲庫函數提供應用。因爲基於C++面向對象的思想,其算法的剝離相對於openssl來說可能更加容易。對於不需要涉及SSL協議的技術人員來說,使用該庫函數應用是一個不錯的選擇。    
【應用現狀以及建議】
目前,很多CA以及其它PKI商業程序都是基於openssl開發的,基於openssl開發的好處週期非常短,而且功能強大。而Cryptlib因爲僅僅侷限於加密算法,所以其應用沒有openssl廣泛,但是對於只需要加密算法的情況來說,這是一個更好的選擇。
建議如果你的應用涉及到SSL等PKI協議,應該使用openssl,如果只是應用一些加密算法,則建議使用Cryptlib.


 

發佈了24 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章