aes算法cbc模式c语言,AES算法及它的CBC加密模式

AES四种加密模式的区别:

ECB(Electronic Code Book电子密码本)模式

ECB模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密。

优点:   1.简单;   2.有利于并行计算;  3.误差不会被扩散;

缺点:   1.不能隐藏明文的模式;  2.可能对明文进行主动攻击;因此,此模式适于加密小消息。

CBC(Cipher Block Chaining,加密块链)模式

优点:  不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的标准。

缺点:  1.不利于并行计算;  2.误差传递;  3.需要初始化向量IV

CFB(Cipher FeedBack Mode,加密反馈)模式

优点:  1.隐藏了明文模式;  2.分组密码转化为流模式;  3.可以及时加密传送小于分组的数据;

缺点:  1.不利于并行计算;  2.误差传送:一个明文单元损坏影响多个单元;  3.唯一的IV;

OFB(Output FeedBack,输出反馈)模式

优点:  1.隐藏了明文模式;  2.分组密码转化为流模式;  3.可以及时加密传送小于分组的数据;

缺点:  1.不利于并行计算;  2.对明文的主动攻击是可能的;  3.误差传送:一个明文单元损坏影响多个单元;

2. AES算法

AES使用采用CBC算法模式,PKCS5/PKCS7填充模式,向量和密钥相同。

明文 hello,world!

密钥 chinashanghaijky

密文

byte(-128~127)  35,118,54,20,-110,33,-7,92,121,-103,21,52,-119,96,-120,-30

byte(0~256) 35,118,54,20,146,33,149,92,121,153,21,52,137,96,126,226

十六进制 237636149221f95c79991534896088e2

备注:对于byte类型,由于不同言语对应的值范围不同,如C、C++、java是-128~127,C#是0~256,因此对应范围不同的值在不同语言中显示值会有不同,但对结果没有影响。

采用“在线AES加解密”对上述加密过程进行验证,验证结果如下图所示:

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值