Posted on 2009-12-14 10:07
S.l.e!ep.¢% 閱讀(674)
評論(0) 編輯 收藏 引用
【openssl資源】
作者:Eric Yang等
官方網站:http://www.openssl.org
中文網站推薦:http://gdwzh.126.com
當前版本: openssl-0.9.7
【Cryptlib】
作者:Wei Dai
下載網站:http://www.eskimo.com/~weidai/cryptlib.html
當前版本:Version 5.0
目前開放源代碼的加密庫中,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.