现在的位置: 首页 > 综合 > 正文

openssl和cryptlib简介

2013年01月27日 ⁄ 综合 ⁄ 共 1678字 ⁄ 字号 评论关闭

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.

 

抱歉!评论已关闭.