加密模式CBC、ECB、CTR、OCF和CFB

阅读文本大概需要3分钟。

       在开发中如果有接触到加密,就一定遇到过MD5、DES、Triple DES、AES、RSA等加密方式(这些都叫加密算法);在深入了解加密领域的知识时,除了有加密算法外;还有加密模式(CBC、ECB、CTR、OCF、CFB等),填充模式(NoPadding、PKCS5Padding、PKCS7Padding等)。本文了解一下加密中的加密模式,不同的加密模式对数据加密的安全度不一样。

0x01:常见的加密模式

电码本模式(Electronic Codebook Book,简称ECB:是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。

密码分组链接模式(Cipher Block Chaining,简称CBC:是一种循环模式,前一个分组的密文和当前分组的明文异或操作后再加密,这样做的目的是增强破解难度。

计算器模式(Counter,简称CTR):计算器模式不常见,在CTR模式中, 有一个自增的算子,这个算子用密钥加密之后的输出和明文异或的结果得到密文,相当于一次一密。这种加密方式简单快速,安全可靠,而且可以并行加密,但是在计算器不能维持很长的情况下,密钥只能使用一次。

密码反馈模式(Cipher FeedBack,简称CFB):实际上是一种反馈模式,目的也是增强破解的难度。

输出反馈模式(Output FeedBack,简称OFB:实际上是一种反馈模式,目的也是增强破解的难度。

0x02:图解

1、电码本模式加密

2、电码本模式解密

图可见电码本模式(ECB)无论加密还是解密,每一段都是使用同样的密钥,循环同样的加密动作。

3、密码分组链接模式加密

4、密码分组链接模式解密

图可见密码分组链接模式(CBC),前一个分组会影响下一个分组的加密。

5、计算器模式加密


6、密文反馈模式加密

7、输出反馈模式加密

为什么要说一下加密模式呢?因为最近使用Fortify进行代码静态扫描时,Fortify有一个弱密码的规则提示不能使用ECB模式,推荐使用CBC模式。从ECB和CBC的说明及图解也可以看出CBC加密模式要比ECB加密模式更加安全。另外,项目开发中常遇到的也就这两个加密模式,其他的权当了解即可。

参考整理:
https://www.cnblogs.com/starwolf/p/3365834.html
https://www.cnblogs.com/yanzi-meng/p/9640578.html

往期精彩

01 漫谈发版哪些事,好课程推荐

02 Linux的常用最危险的命令

03 精讲Spring Boot—入门+进阶+实例

04 优秀的Java程序员必须了解的GC哪些

05 互联网支付系统整体架构详解

关注我

每天进步一点点

很干!在看吗?☟

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BUG弄潮儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值