火山OpenSSL支持库-02-DES加解密

本文介绍了如何在火山项目中使用OpenSSL库实现DES加解密,并详细解析了DES的ECB、CBC、CFB、OFB四种模式的优缺点。推荐在加密数据时使用CFB模式,以确保每个数据包独立加密,减少错误影响。同时,提供了代码示例和实际操作的GIF演示。
摘要由CSDN通过智能技术生成

本源码转载自利快云https://www.lkuaiy.com/

火山OpenSSL支持库-02-DES加解密

一、需要调用的模块

  1. 视窗基本类
  2. MFC界面基本类
  3. OpenSSL

二、DES加解密基本原理简单介绍


 1.DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥对数据进行加密的算法,常见的加密模式有 ECB,CBC,CFB,OFB 四种,即 DES_ECB,DES_CBC,DES_CFB,DES_OFB

 2.ECB模式优缺点:

  • 优点:算法简单,有利于并行计算,且误差不会被传送
  • 缺点:用一个密钥加密消息的所有块,如果原消息中重复明文块,则加密消息中的相应密文块也会重复,容易对明文进行主动的攻击。所以,ECB模式适于加密不重要消息

 3.CBC模式优缺点:

  • 优点:不容易主动攻击,安全性好于ECB,适合传输长度长的数据
  • 缺点:密文不利于并行计算,容易造成误差传递,且需要初始向量

 4.CFB模式优缺点:

  • 优点:分组密码转化为流模式,隐藏了明文模式,可以及时加密传送小于分组的数据。
  • 缺点: 密文不利于并行计算,如果一个明文单元损坏,则会影响多个密文单元,需要唯一的初始化向量

 5.OFB模式优缺点:

  • 优点:分组密码转化为流模式,隐藏了明文模式,可以及时加密传送小于分组的数据。
  • 缺点:密文不利于并行计算,如果一个明文单元损坏,则会影响多个密文单元,且对明文的主动攻击是可能的

 5.四种模式综合比较:

   在四种模式中,只有ECB模式不需要设置初始向量,ECB在Key相同时,相同明文会产生相同的密文,容易遭到字典攻

   CBC在一定程度上抵御了字典工具,但缺点也随之而来,一旦中间一个数据出错或丢失,后面的数据将受到影响

   CFB与CBC类似,好处是明文和密文不用是8bit的整数倍,中间一个数据出错,只影响后面的几个块的数据

   OFB比CFB方式,一旦一个数据出错,不会影响后面的数据,但安全性降低

   因此,在加密数据时候推荐使用CFB方式,每个数据包单独加密,否则一个数据包丢失,需要做很多容错处理

 6.3DES是DES加密算法的一种模式,它使用3条64位的密钥对数据进行三次加密,可简单理解为,使用DES对数据进行三次加密

三、火山项目的建立以及代码书写

  1. 工具栏中点击文件---新建---项目---空白视窗程序--MFC窗口程序
  2. 引入OpenSSL支持库
  3. 在我的主窗口类下,按 Ctrl U 进入界面布局,按下图放置组件,按图命令方式命名

    

 4.双击界面空白处,快速创建 我的主窗口_创建完毕 事件,在事件下,对组合框赋值,这样子做便于后期维护

 

 5.进入按钮事件,对于所有按钮均需要执行的代码,不需要判断来源对象,这里获取界面上的信息

 

 6.来源对象为加密按钮,获取编辑框3的内容,根据选择的加密模式进行加密,将加密结果显示在编辑框4里面,代码过长,具体请看源码

 


 7.来源对象为解密按钮,获取编辑框4的内容,根据选择的加密模式进行解密,结果显示在编辑框3里面,您可以将编辑框3的内容删除,看到具体的效果,代码过长,具体请看源码

    

四、GIF演示

五、附件下载

点击下载

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值