火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 8943|回复: 46
打印 上一主题 下一主题

[视窗] 火山OpenSSL支持库-03-AES加解密

[复制链接]

359

主题

6653

帖子

1万

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
16644
跳转到指定楼层
楼主
发表于 2021-7-7 19:19:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本源码转载自利快云https://www.lkuaiy.com/

火山OpenSSL支持库-03-AES加解密
一、需要调用的模块
  • 视窗基本类
  • MFC界面基本类
  • OpenSSL

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

1.AES是一种使用密钥对数据进行加密的算法,它的出现主要是为了取代DES加密算法,DES算法的密钥长度是56Bit,因此算法的理论安全强度是2的56次方,新世界飞速发展使计算机的处理能力越来越强,虽然出现了3DES的加密方法,但由于它的加密时间是DES算法的3倍多,加密耗时长,运算量大,AES相比于DES加密算法,它具有更快的运算速度,在加密运算过程中,对内存需要非常小,且灵活的密钥选择性使得加密算法安全可靠


、AES不同加密模式优缺点介绍

AES常见的加密模式有 ECB,CBC,CTR,CFB,OFB 五种,即 AES_ECB,AES_CBC,AES_CTR,AES_CFB,AES_OFB


1.ECB模式优缺点:
  • 优点:算法简单,有利于并行计算,且误差不会被传送

  • 缺点:用一个密钥加密消息的所有块,如果原消息中重复明文块,则加密消息中的相应密文块也会重复,容易对明文进行主动的攻击。所以,ECB模式适于加密不重要消息

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

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


4.OFB模式优缺点:
  • 优点:分组密码转化为流模式,隐藏了明文模式,可以及时加密传送小于分组的数据。
  • 缺点:密文不利于并行计算,如果一个明文单元损坏,则会影响多个密文单元,且对明文的主动攻击是可能的
5.CTR模式优缺点:
  • 优点:无填充,可以高效地作为流式加密使用,错误信息不传播,具有和其他模式同等的安全级别
  • 缺点:不能进行完整性校验: 密文传输过程中丢失比特位将导致后续比特位无法正确解密

、AES加密算法密钥,初始向量及密钥长度


  AES属于对称加密算法,对数据加解密需要使用同一密钥

  AES除ECB模式,其他模式均需要提供初始向量,向量具体可在火山OpenSSL支持库中查看
  AES密钥长度可选128位,192位,256位,一个字节等于8位,128位需要16字节密钥,192位需要24字节密钥,256位需要32字节密

三、火山项目的建立以及代码书写
  • 工具栏中点击文件---新建---项目---空白视窗程序--MFC窗口程序
  • 引入OpenSSL支持库
  • 在我的主窗口类下,按 Ctrl U 进入界面布局,按下图放置组件,按图命令方式命名
   
4.双击界面空白处,快速创建 我的主窗口_创建完毕 事件,在事件下,对组合框赋值,这样子做便于后期维护

5.进入按钮事件,对于所有按钮均需要执行的代码,不需要判断来源对象,这里获取界面上的信息
6.来源对象为加密按钮,获取编辑框3的内容,根据选择的加密模式进行加密,将加密结果显示在编辑框4里面,代码过长,具体请看源码

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

游客,如果您要查看本帖隐藏内容请回复







火山安卓+PC多部课程尽在:www.lkuaiy.com
回复

使用道具 举报

11

主题

32

帖子

336

积分

中级会员

Rank: 3Rank: 3

积分
336
沙发
发表于 2021-7-8 09:13:28 | 只看该作者
你好 请问支持AES-CBC-256解密吗
回复

使用道具 举报

359

主题

6653

帖子

1万

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
16644
板凳
 楼主| 发表于 2021-7-24 15:12:55 | 只看该作者
每日一顶
火山安卓+PC多部课程尽在:www.lkuaiy.com
回复

使用道具 举报

0

主题

196

帖子

850

积分

高级会员

Rank: 4

积分
850
地板
发表于 2021-7-26 12:43:45 | 只看该作者

你好 请问支持AES-CBC-256解密吗
回复

使用道具 举报

0

主题

12

帖子

62

积分

注册会员

Rank: 2

积分
62
5#
发表于 2021-7-26 13:26:26 | 只看该作者
学习了,天天学习,才能不断进步
回复

使用道具 举报

4

主题

509

帖子

2520

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2520
6#
发表于 2021-7-26 17:57:20 | 只看该作者

谢谢分享!
回复

使用道具 举报

359

主题

6653

帖子

1万

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
16644
7#
 楼主| 发表于 2021-7-31 21:54:08 | 只看该作者
日常一顶
火山安卓+PC多部课程尽在:www.lkuaiy.com
回复

使用道具 举报

359

主题

6653

帖子

1万

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
16644
8#
 楼主| 发表于 2021-8-6 09:40:08 | 只看该作者
日常一顶
火山安卓+PC多部课程尽在:www.lkuaiy.com
回复

使用道具 举报

3

主题

142

帖子

1561

积分

金牌会员

Rank: 6Rank: 6

积分
1561
9#
发表于 2021-8-26 17:16:07 | 只看该作者
让 江小白 来看看帖子里藏了啥好东西~~~
回复

使用道具 举报

0

主题

12

帖子

283

积分

中级会员

Rank: 3Rank: 3

积分
283
10#
发表于 2021-8-26 18:20:12 | 只看该作者
根本不需要OpenSSL winapi就可以实现,还有AES-GCM,不用再带个dll
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-5-20 16:34 , Processed in 0.101193 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表