1185907650 发表于 2021-7-7 19:06:33

火山OpenSSL支持库-04-RC加解密

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

火山OpenSSL支持库-04-RC加解密一、需要调用的模块
[*]视窗基本类

[*]MFC界面基本类
[*]OpenSSL

二、RC加解密简单介绍

1.RC算法的速度可以达到DES加密的10倍左右,且具有很高级别的非线性。RC4是对称密钥加密算法,根据目前的分析结果,没有任何的分析对于密钥长度达到128位的RC4有效,所以,RC4是目前最安全的加密算法之一


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

RC包括RC2,RC4,RC5,常见的加密模式有 ECB,CBC,CFB,OFB 四种


1.ECB模式优缺点:

[*]优点:算法简单,有利于并行计算,且误差不会被传送


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

2.CBC模式优缺点:

[*]优点:不容易主动攻击,安全性好于ECB,适合传输长度长的数据

[*]缺点:密文不利于并行计算,容易造成误差传递,且需要初始向量

3.CFB模式优缺点:

[*]优点:分组密码转化为流模式,隐藏了明文模式,可以及时加密传送小于分组的数据。

[*]缺点:密文不利于并行计算,如果一个明文单元损坏,则会影响多个密文单元,需要唯一的初始化向量


4.OFB模式优缺点:

[*]优点:分组密码转化为流模式,隐藏了明文模式,可以及时加密传送小于分组的数据。

[*]缺点:密文不利于并行计算,如果一个明文单元损坏,则会影响多个密文单元,且对明文的主动攻击是可能的


三、AES加密算法密钥,初始向量


RC属于对称加密算法,对数据加解密需要使用同一密钥
在火山OpenSSL支持库中,RC4,RC-40位,RC2-ECB四种加密命令不需要提供初始向量,其他RC系列均需要提供初始变量


三、火山项目的建立以及代码书写
[*]工具栏中点击文件---新建---项目---空白视窗程序--MFC窗口程序
[*]引入OpenSSL支持库
[*]在我的主窗口类下,按 Ctrl U 进入界面布局,按下图放置组件,按图命令方式命名
https://www.lkuaiy.com/image/editor/16254493485182.png
4.双击界面空白处,快速创建 我的主窗口_创建完毕 事件,在事件下,对组合框赋值,这样子做便于后期维护
https://www.lkuaiy.com/image/editor/16254493635519.png
5.进入按钮事件,对于所有按钮均需要执行的代码,不需要判断来源对象,这里获取界面上的信息 https://www.lkuaiy.com/image/editor/16254493751507.png 6.来源对象为加密按钮,获取编辑框3的内容,根据选择的加密模式进行加密,将加密结果显示在编辑框4里面, https://www.lkuaiy.com/image/editor/16254493922824.png
7.来源对象为解密按钮,获取编辑框4的内容,根据选择的加密模式进行解密,结果显示在编辑框3里面,您可以将编辑框3的内容删除,看到具体的效果 https://www.lkuaiy.com/image/editor/16254494016944.png四、GIF演示 https://www.lkuaiy.com/image/editor/16254499143748.gif五、附件下载**** Hidden Message *****



Moon 发表于 2021-7-19 07:54:25

有没有rsa的

1185907650 发表于 2021-7-24 14:13:46

每日一顶:)

langui8899 发表于 2021-7-24 23:31:58


有没有rsa的
页: [1]
查看完整版本: 火山OpenSSL支持库-04-RC加解密