- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 Openssl 加密和解密 一、Openssl概述 Openssl实现了ssl/tls协议,采用c语言开发,支持windows/linux/unix等常见操作系统。 Openssl当前版本为0.9.8e,完全实现了对sslv1、 sslv2、 sslv3、 tls的支持。 Openssl的源代码库可以从Openssl的官方网站自由下载。 Openssl包括3部分:ssl协议、密码算法库和应用程序。密码算法库是基础,应用程序把密码算法库和ssl协议应用于实际开发中,也是丰富的Openssl指令集。 一、Openssl概述 Ssl协议 利用该库可以建立一个ssl通信的服务器和客户端。该部分在windows编译后,文件名为:ssleay32.lib。 密码算法库 支持的算法:8种对称算法、4种公开密钥算法、5种信息摘要算法。 应用程序部分 基于密码算法库和ssl协议库,实现了很多实用的范例性应用程序,覆盖了众多密码学应用。包括:各种算法的加密程序,各种类型密钥的产生程序,证书签发和验证程序、ssl连接测试程序、其他的标准应用程序。 二、openssl下载与编译 Windows下编译openssl Windows下搭建openssl开发环境 二、openssl下载与编译 编译步骤: 1、访问/source/下载 2、解压缩openssl-0.9.8e.tar.gz 3、下载perl 地址/activeperl 4、安装perl 5、运行cmd命令,在控制台窗口,用cd命令改变当前目录的openssl-0.9.8e源码所在目录 6、执行configure,运行”perl Configure VC-WIN32 –prefix=c:/openssl-0.9.8e” 二、openssl下载与编译 编译完成后,基于它的应用有openssl指令和openssl接口开发两种。Openssl指令能做很多事情,比如证书请求、签发证书、解析证书。但开发者利用openssl接口完成自己的需求,会更加灵活。 三、Openssl 加密和解密 Openssl 加密和解密函数包含在密码算法库libeay32.lib中。提供的对称加密算法包括des,aes,rc2,rc4,分别声明在“C:\openssl\include\openssl”目录下的des.h,aes.h,rc2.h,rc4.h中.调用算法对应的头文件实现不同算法。Openssl为了调用方便,把这些算法都封装在evp.h文件中。接下来就直接利用evp.h加密和解密算法实现对数据的对称加密和解密,来保证数据保密性。 三、Openssl 加密和解密 一、函数介绍 在Openssl 加密和解密的开发中, 加密函数为:evp_encryptinit_ex evp_encryptupdate evp_encryptfinal_ex 解密函数为:evp_decryptinit_ex evp_decryptupdate_ex evp_encryptfinal_ex 它们均定义在evp.h中。 三、Openssl 加密和解密 一、函数介绍 1、初始化函数evp_cipher_ctx_init 函数功能:初始化一个evp_cipher_ctx结构体。只有调用该函数初始化后evp_cipher_ctx结构体才能在其他函数中调用。 函数定义: Void evp_cipher_ctx_init(evp_cipher_ctx *a) 三、Openssl 加密和解密 一、函数介绍 2、加密初始化函数evp_encryptlnit_ex 函数功能:加密初始化,设置密码算法、加密引擎、密钥、初始化向量等参数。 函数定义: int evp_encrypinit_ex(evp_cipher_ctx*ctx,const evp_cipher*cipher,engine *inpl,const unsigned char*key,const unsigned char*iv); 注意:调用该函数时注意给key、iv参数分配空间,key和iv的长度由算法决定,如des算法key和iv为8字节;3des算法key为24字节,iv为8字节。 三、Openssl 加密和解密 一、函数介绍 3、数据加密函数evp_encryptupdate 函数功能:数据加密。 函数定义: int evp_encryptupdate(evp_cipher_ctx*ctx, unsigned char*out,int*out1,const
文档评论(0)