专栏首页JAVA乐园加密模式CBC、ECB、CTR、OCF和CFB

加密模式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

本文分享自微信公众号 - JAVA乐园(happyhuangjinjin88),作者:java乐园

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • jmeter参数化csv+用户参数配合(请求加密,返回解密)

    1. 所有的接口都经过网关,意味着:入参和出参都需要加密,是所有的参数而不是单个参数的加密;

    java乐园
  • Sentinel控制台监控数据持久化到MySQL数据库

    根据官方wiki文档,Sentinel控制台的实时监控数据,默认仅存储 5 分钟以内的数据。如需持久化,需要定制实现相关接口。

    java乐园
  • Redis持久化 - RDB和AOF

    持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。 持久化Redis所有数据保持在内存中,对数据的更新将异步地...

    java乐园
  • 最好的文件夹加密软件有哪些?

    我所说的这些,VeraCrypt 全部具备,并且它还支持多平台( macOS、Windows 和 Linux)。

    wuweixiang
  • SQL Server 数据加密功能解析

    通常来讲,数据加密分为对称加密和非对称加密。SQL Server 就使用了折中的方法,所以SQL Server 加密功能包含2个部分:数据加密和密钥管理。本文将...

    腾讯云数据库团队
  • 加密通讯可以防止隐私窃取,为何我们都不用它?

    前言: 分享这篇文章的原因是这几天在上课的时候,密码学老师讲解的密码学把我吸引住了,说到什么加密解密,讲课逻辑性挺高的,我喜欢—>_<。 其实说到真正分享这篇文...

    FB客服
  • 小技巧:使用Cryptsetup加密U盘

    如今U盘的存储和数据传输能力已经非常强了,可以跨各类平台运行,存储空间甚至达到了256G,堪比过去普通硬盘的容量。这里,我们将向你展示如何加密U盘,妈妈再也不用...

    FB客服
  • 实战案例浅析JS加密 - 基础总结篇

    找了一圈发现越是大厂加密越是简单,安全防护之类的完全不靠js加密,扫码登陆才是关键。比如微信公众号平台的登陆加密就是简单的MD5,但人家有扫码登陆,此类情况比比...

    咸鱼学Python
  • Oracle Data Redaction数据加密

    Oracle Database 12c中加入了Data Redaction作为一个新的安全特性。(实际在11g的官方Database Advanced Secu...

    数据和云
  • PostgreSQL数据库透明数据加密概述

    最近一段时间,一直在和PostgreSQL社区合作开发TDE(Transparent data encryption,透明数据加密)。研究了一些密码学相关的知识...

    王果壳

扫码关注云+社区

领取腾讯云代金券