Posted on 2009-12-14 10:07
S.l.e!ep.¢% 閱讀(680)
評論(0) 編輯 收藏 引用
【openssl資源】
作者:Eric Yang等
官方網(wǎng)站:http://www.openssl.org
中文網(wǎng)站推薦:http://gdwzh.126.com
當前版本: openssl-0.9.7
【Cryptlib】
作者:Wei Dai
下載網(wǎng)站:http://www.eskimo.com/~weidai/cryptlib.html
當前版本:Version 5.0
目前開放源代碼的加密庫中,openssl和cryptlib都是比較流行的,本文將根據(jù)自己的一點理解對這兩個庫作一些比較,希望能對大家有用。這兩個庫的構(gòu)造思想和目的都不太一樣. Openssl主要是針對SSL/TLS協(xié)議的實現(xiàn),SSL的功能體現(xiàn)的非常完善,而算法庫只是一個附帶的必要部分,當然也是非常重要和完善的一個部分。Crypylib則就是實現(xiàn)了加密算法以及相關(guān)的一些編碼標準。
【openssl的組成和特點】
openssl是一個非常優(yōu)秀的SSL/TLS開放源碼軟件包,它包括SSL庫、加密算法庫以及應(yīng)用程序三大部分,并提供了測試程序和一些應(yīng)用例子,實現(xiàn)了SSL/TLS協(xié)議和其相關(guān)的PKI標準。openssl因為開發(fā)的比較早,所以采用了c語言作為編寫的語言,但是,openssl里面確可以找到很多面向?qū)ο蟮乃枷耄鏐IO的封裝就是一個典型的例子。對于剛剛開始接觸openssl的技術(shù)人員來說,可能會覺得有點困難,因為openssl的結(jié)構(gòu)非常膨大,即便要閱讀完其非常不完善的文檔,工作量也是非常膨大的。建議開始接觸openssl的時候,除了有一些基本的密碼學和PKI的概念外,最好從使用它提供的一些應(yīng)用程序開始。其實,openssl的應(yīng)用程序已經(jīng)很完善,許多CA就是基于這些基礎(chǔ)上做成的。
對于很多人來說,openssl應(yīng)用程序就足以完成他們需要的功能,openssl應(yīng)用程序主要提供了下列的一些功能:
1.各種類型密鑰以及密鑰參數(shù)的生成和格式轉(zhuǎn)換功能
2.使用各種加密算法進行數(shù)據(jù)加密的功能
3.證書請求、證書生成和簽發(fā)以及證書其它相關(guān)標準的轉(zhuǎn)換功能,實現(xiàn)了一個CA的功能
4.信息摘要算法以及其相關(guān)編碼的實現(xiàn)
5.SSL協(xié)議模擬客戶端和服務(wù)器端的實現(xiàn),可以用來測試SSL服務(wù)器和SSL客戶端程序。
【Cryptlib的組成和特點】
Cryptlib實現(xiàn)了各種公開密鑰算法、對稱加密算法、數(shù)字簽名算法、信息摘要算法以及其相關(guān)的其它算法等等。它采用C++語言編寫而成,因為是面向?qū)ο笳Z言,所以對于初學者來說更容易理清其結(jié)構(gòu)。該庫沒有提供應(yīng)用程序,只是作為庫函數(shù)提供應(yīng)用。因為基于C++面向?qū)ο蟮乃枷?,其算法的剝離相對于openssl來說可能更加容易。對于不需要涉及SSL協(xié)議的技術(shù)人員來說,使用該庫函數(shù)應(yīng)用是一個不錯的選擇。????
【應(yīng)用現(xiàn)狀以及建議】
目前,很多CA以及其它PKI商業(yè)程序都是基于openssl開發(fā)的,基于openssl開發(fā)的好處周期非常短,而且功能強大。而Cryptlib因為僅僅局限于加密算法,所以其應(yīng)用沒有openssl廣泛,但是對于只需要加密算法的情況來說,這是一個更好的選擇。
建議如果你的應(yīng)用涉及到SSL等PKI協(xié)議,應(yīng)該使用openssl,如果只是應(yīng)用一些加密算法,則建議使用Cryptlib.