Openssl加密和解密.ppt

上传人:sh****n 文档编号:6392712 上传时间:2020-02-24 格式:PPT 页数:20 大小:285.50KB
返回 下载 相关 举报
Openssl加密和解密.ppt_第1页
第1页 / 共20页
Openssl加密和解密.ppt_第2页
第2页 / 共20页
Openssl加密和解密.ppt_第3页
第3页 / 共20页
点击查看更多>>
资源描述
第七章Openssl加密和解密 一 Openssl概述 Openssl实现了ssl tls协议 采用c语言开发 支持windows linux unix等常见操作系统 Openssl当前版本为0 9 8e 完全实现了对sslv1 sslv2 sslv3 tls的支持 Openssl的源代码库可以从Openssl的官方网站www openssl org自由下载 Openssl包括3部分 ssl协议 密码算法库和应用程序 密码算法库是基础 应用程序把密码算法库和ssl协议应用于实际开发中 也是丰富的Openssl指令集 一 Openssl概述 Ssl协议利用该库可以建立一个ssl通信的服务器和客户端 该部分在windows编译后 文件名为 ssleay32 lib 密码算法库支持的算法 8种对称算法 4种公开密钥算法 5种信息摘要算法 应用程序部分基于密码算法库和ssl协议库 实现了很多实用的范例性应用程序 覆盖了众多密码学应用 包括 各种算法的加密程序 各种类型密钥的产生程序 证书签发和验证程序 ssl连接测试程序 其他的标准应用程序 二 openssl下载与编译 Windows下编译opensslWindows下搭建openssl开发环境 二 openssl下载与编译 编译步骤 1 访问http www openssl org source 下载2 解压缩openssl 0 9 8e tar gz3 下载perl地址 Windows下编译opensslWindows下编译openssl需要如下环境 openssl源码 perlforwin32 c编译器 vc borlanc等 二 openssl下载与编译 编译步骤 7 运行 ms do ms 8 运行 nmake fms ntdll mak 执行make进行编译 该命令将openssl编译成动态库 如果想编译成静态库应使用命令 nmake fms nt mak 9 运行 nmake fms ntdll maktest 检查上一步编译是否成功 10 运行运行 nmake fms ntdll makinstall 本步骤讲安装编译后的openssl到制定目录 11 查看安装结果 打开c openssl 0 9 8e目录将看到bin include lib三个文件夹 12 编译完成 Windows下编译opensslWindows下编译openssl需要如下环境 openssl源码 perlforwin32 c编译器 vc borlanc等 编译完成后 基于它的应用有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 exevp encryptupdateevp encryptfinal ex解密函数为 evp decryptinit exevp decryptupdate exevp encryptfinal ex它们均定义在evp h中 三 Openssl加密和解密 一 函数介绍1 初始化函数evp cipher ctx init函数功能 初始化一个evp cipher ctx结构体 只有调用该函数初始化后evp cipher ctx结构体才能在其他函数中调用 函数定义 Voidevp cipher ctx init evp cipher ctx a 三 Openssl加密和解密 一 函数介绍2 加密初始化函数evp encryptlnit ex函数功能 加密初始化 设置密码算法 加密引擎 密钥 初始化向量等参数 函数定义 intevp encrypinit ex evp cipher ctx ctx constevp cipher cipher engine inpl constunsignedchar key constunsignedchar iv 注意 调用该函数时注意给key iv参数分配空间 key和iv的长度由算法决定 如des算法key和iv为8字节 3des算法key为24字节 iv为8字节 三 Openssl加密和解密 一 函数介绍3 数据加密函数evp encryptupdate函数功能 数据加密 函数定义 intevp encryptupdate evp cipher ctx ctx unsignedchar out int out1 constunsignedchar in intin1 返回值 如果调用成功则返回1 否则返回0 三 Openssl加密和解密 一 函数介绍4 数据加密结束函数evp encryptfinal ex函数功能 数据加密结束 输出最后剩余的密文 函数定义 intevp encryptfinal ex evp cipher ctx ctx unsignedchar out int out1 返回值 如果调用成功则返回1 否则返回0 三 Openssl加密和解密 一 函数介绍5 解密初始化函数evp decryptinit ex函数功能 解密初始化 设置密码算法 加密引擎 密钥 初始化向量等参数 函数定义 intevp decryptinit ex evp cipher ctx ctx constevp cipher cipher engine impl constunsignedchar key constunsignedchar iv 返回值 如果调用成功则返回1 否则返回0 三 Openssl加密和解密 一 函数介绍6 数据解密函数evp decryptupdate函数功能 数据解密 函数定义 intevp decryptupdate evp cipher ctx ctx unsignedchar out int out1 constunsignedchar in intin1 返回值 如果调用成功则返回1 否则返回0 三 Openssl加密和解密 一 函数介绍7 数据解密函数evp decryptfinal ex函数功能 数据解密结束 输出最后剩余的原文 函数定义 intevp decryptfinal ex evp cipher ctx ctx unsignedchar outm intout1 返回值 如果调用成功则返回1 否则返回0 二 实例应用 数据加密了解了加密和解密涉及的函数 下面介绍一下实际开发的步骤 在实际应用中一般通过加密和解密达到信息保密的目的 接下来我们就使用了3DES对称算法对一段数据进行加密 加密后数据将变成无法理解的秘文 三 Openssl加密和解密 二 实例应用 数据加密流程分析 1 定义一些必需的变量 包括密钥 evp算法上下文 输出密文缓冲区等 具体代码如下 Unsignedcharkey evp max key length 密钥Unsignedchariv evp max key length 初始化向量Evp cipher ctxctx evp算法上下文Unsignedcharout 1024 输出密文缓冲区Intout1 密文长度Intoutltmp 2 对密钥key和初始化变量iv赋值 Key和iv可以使用户输入的 也可以是随机产生的 对于对称算法 密钥最关键数据安全都是基于密钥的保密 如果双方通信必须通过安全的方式共享密钥 在现代密码学中一般使用非对称算法 利用对方的公钥加密对称密钥 达到安全传输的目的 3 使用EVP EncryptInit ex函数初始化密码算法结构体EVP CIPHER CTX 这里使用3DES算法 Openssl支持多种对称算法 算法强度 密钥 分组长度不一 可更具实际情况选择对称算法 EVP EncryptInit ex 4 使用EVP Encryptupdate 函数对数据加密 对于不定长数据或大数据可以不断循环调用该函数 直到把数据处理完为止 5 使用EVP Encryptfinal ex ctx out out1 流程图 初始化key和iv 初始化密码算法结构体 设置密码算法 密钥 初始化向量 循环调用加密update 直到处理完所有的待加密数据 调用加密结束函数 输出最后的密文 结束 开始 三 Openssl加密和解密 二 实例应用 数据加密1 file new2 projects win32consoleapplication projectname evp encrypt 3 添加源文件 file new files main c 4 在main c中添加代码5 添加链接库libeay32 lib project settings命令 link object librarymodules文本框添加libeay32 lib
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!