- 3
- 0
- 约4.44千字
- 约 20页
- 2017-06-07 发布于湖北
- 举报
第七章 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)