Openssl_加密和解密

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二、openssl下载与编译 下载与编译
1. Windows下编译 下编译openssl 下编译 2. Windows下搭建openssl开发环境 Windows下搭建openssl开发环境 下搭建
二、openssl下载与编译 下载与编译
1. Windows下编译 下编译openssl 下编译 Windows下编译 下编译openssl需要如下环境:openssl源 需要如下环境: 下编译 需要如下环境 源 编译器( 码、perl for win32、c编译器(vc++、borlan c等) 、 编译器 、 等 编译步骤: 编译步骤: 1、访问 、访问http://www.openssl.org/source/下载 下载 2、解压缩 、解压缩openssl-0.9.8e.tar.gz 3、下载 、下载perl 地址 http://www.activestate.com/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实现了 实现了ssl/tls协议,采用 语言开发,支 协议, 语言开发, 实现了 协议 采用c语言开发 等常见操作系统。 持windows/linux/unix等常见操作系统。 等常见操作系统 Openssl当前版本为 当前版本为0.9.8e,完全实现了对 当前版本为 ,完全实现了对sslv1、 、 sslv2、 sslv3、 tls的支持。 Openssl的源代码 的支持。 、 、 的支持 的源代码 库可以从Openssl的官方网站 的官方网站www.openssl.org 库可以从 的官方网站 自由下载。 自由下载。 Openssl包括 部分:ssl协议、密码算法库和应 包括3部分 协议、 包括 部分: 协议 用程序。密码算法库是基础, 用程序。密码算法库是基础,应用程序把密码算 法库和ssl协议应用于实际开发中 协议应用于实际开发中, 法库和 协议应用于实际开发中,也是丰富的 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下载与编译 下载与编译
1. Windows下编译 下编译openssl 下编译 Windows下编译 下编译openssl需要如下环境:openssl源 需要如下环境: 下编译 需要如下环境 源 编译器( 码、perl for win32、c编译器(vc++、borlan c等) 、 编译器 、 等 编译步骤: 编译步骤: 7、运行“ms\do_ms” 、运行“ 8、运行” 8、运行”nmake-f ms\ntdll.mak”,执行make进行编译。 ms\ntdll.mak”,执行 执行make进行编译 进行编译。 该命令将openssl编译成动态库,如果想编译成静 编译成动态库, 该命令将 编译成动态库 态库应使用命令“ 态库应使用命令“nmake –f ms\nt.mak ” 9、运行”nmake-f ms\ntdll.mak test”,检查上一步编 、运行” 检查上一步编 译是否成功。 译是否成功。 10、运行运行”nmake-f ms\ntdll.mak install”, 本步 、运行运行” 骤讲安装编译后的openssl到制定目录。 到制定目录。 骤讲安装编译后的 到制定目录 11、查看安装结果。打开 、查看安装结果。打开c:\openssl-0.9.8e目录将看到 目录将看到 bin\include\lib三个文件夹。 三个文件夹。 三个文件夹 12、编译完成。 、编译完成。
三、Openssl 加密和解密
一、函数介绍 1、初始化函数 、初始化函数evp_cipher_ctx_init 函数功能:初始化一个evp_cipher_ctx结构体。 结构体。 函数功能:初始化一个 结构体 只有调用该函数初始化后evp_cipher_ctx结构 只有调用该函数初始化后 结构 体才能在其他函数中调用。 体才能在其他函数中调用。 函数定义: 函数定义: Void evp_cipher_ctx_init(evp_cipher_ctx *a)
三、Openssl 加密和解密
一、函数介绍 5、解密初始化函数 、解密初始化函数evp_decryptinit_ex 函数功能:解密初始化,设置密码算法、 函数功能:解密初始化,设置密码算法、加密引 密钥、初始化向量等参数。 擎、密钥、初始化向量等参数。 函数定义: 函数定义: int evp_decryptinit_ex(evp_cipher_ctx*ctx, const evp_cipher*cipher,engine*impl,const unsigned char*key,const unsigned char *iv); 返回值:如果调用成功则返回1,否则返回0; 返回值:如果调用成功则返回 ,否则返回 ;
三、Openssl 加密和解密
一、函数介绍 6、数据解密函数 、数据解密函数evp_decryptupdate 函数功能:数据解密。 函数功能:数据解密。 函数定义: 函数定义: int evp_decryptupdate(evp_cipher_ctx*ctx, unsigned char*out,int *out1,const , unsigned char *in,int in1); , 返回值:如果调用成功则返回1,否则返回0; 返回值:如果调用成功则返回 ,否则返回 ;
二、openssl下载与编译 下载与编译
编译完成后,基于它的应用有 指令和openssl 编译完成后,基于它的应用有openssl指令和 指令和 接口开发两种。 指令能做很多事情, 接口开发两种。Openssl指令能做很多事情,比如证书 指令能做很多事情wenku.baidu.com请求、签发证书、解析证书。但开发者利用openssl接 请求、签发证书、解析证书。但开发者利用 接 口完成自己的需求,会更加灵活。 口完成自己的需求,会更加灵活。
三、Openssl 加密和解密
一、函数介绍 加密和解密的开发中, 在Openssl 加密和解密的开发中, 加密函数为: 加密函数为:evp_encryptinit_ex evp_encryptupdate evp_encryptfinal_ex 解密函数为: 解密函数为:evp_decryptinit_ex evp_decryptupdate_ex evp_encryptfinal_ex 它们均定义在evp.h中。 它们均定义在 中
三、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 参数分配空间, 注意:调用该函数时注意给 、 参数分配空间 的长度由算法决定, 算法key和iv为8字节; 字节; 和iv的长度由算法决定,如des算法 的长度由算法决定 算法 和 为 字节 3des算法 算法key为24字节,iv为8字节。 字节, 为 字节 字节。 算法 为 字节
一、Openssl概述 概述
Ssl协议 协议 利用该库可以建立一个ssl通信的服务器和客户端 通信的服务器和客户端。 利用该库可以建立一个 通信的服务器和客户端。该部 分在windows编译后,文件名为:ssleay32.lib。 编译后, 分在 编译后 文件名为: 。 2. 密码算法库 支持的算法: 种对称算法 种对称算法、 种公开密钥算法 种公开密钥算法、 种信 支持的算法:8种对称算法、4种公开密钥算法、5种信 息摘要算法。 息摘要算法。 3. 应用程序部分 基于密码算法库和ssl协议库 协议库, 基于密码算法库和 协议库,实现了很多实用的范例性 应用程序,覆盖了众多密码学应用。包括: 应用程序,覆盖了众多密码学应用。包括:各种算法的 加密程序,各种类型密钥的产生程序,证书签发和验证 加密程序,各种类型密钥的产生程序, 程序、 连接测试程序 其他的标准应用程序。 连接测试程序、 程序、ssl连接测试程序、其他的标准应用程序。 1.
三、Openssl 加密和解密
一、函数介绍 3、数据加密函数 、数据加密函数evp_encryptupdate 函数功能:数据加密。 函数功能:数据加密。 函数定义: 函数定义: int evp_encryptupdate(evp_cipher_ctx*ctx, unsigned char*out,int*out1,const , , unsigned char*in,int in1); , 返回值:如果调用成功则返回1,否则返回0; 返回值:如果调用成功则返回 ,否则返回 ;
三、Openssl 加密和解密
一、函数介绍 7、数据解密函数 、数据解密函数evp_decryptfinal_ex 函数功能:数据解密结束,输出最后剩余的原文。 函数功能:数据解密结束,输出最后剩余的原文。 函数定义: 函数定义: int evp_decryptfinal_ex(evp_cipher_ctx*ctx, unsigned char*outm, int out1); 返回值:如果调用成功则返回1,否则返回0; 返回值:如果调用成功则返回 ,否则返回 ;
三、Openssl 加密和解密
二、实例应用—数据加密 实例应用 数据加密 了解了加密和解密涉及的函数, 了解了加密和解密涉及的函数,下面介绍 一下实际开发的步骤。 一下实际开发的步骤。在实际应用中一般 通过加密和解密达到信息保密的目的。 通过加密和解密达到信息保密的目的。接 下来我们就使用了3DES对称算法对一段数 下来我们就使用了 对称算法对一段数 据进行加密。 据进行加密。加密后数据将变成无法理解 的秘文。 的秘文。
三、Openssl 加密和解密
一、函数介绍 4、数据加密结束函数 、数据加密结束函数evp_encryptfinal_ex 函数功能:数据加密结束。输出最后剩余的密文。 函数功能:数据加密结束。输出最后剩余的密文。 函数定义: 函数定义: int evp_encryptfinal_ex(evp_cipher_ctx*ctx, unsigned char*out,int*out1); , 返回值:如果调用成功则返回1,否则返回0; 返回值:如果调用成功则返回 ,否则返回 ;
相关文档
最新文档