Java安全密码学-(四)加密模式、填充模式

加密模式

ECB

Electronic codebook, 电子密码本. 需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密

Java安全密码学-(四)加密模式、填充模式_第1张图片

优点 : 可以并行处理数据

缺点 : 同样的原文生成同样的密文, 不能很好的保护数据

同时加密,原文是一样的,加密出来的密文也是一样的

 

CBC

Cipher-block chaining, 密码块链接. 每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块

Java安全密码学-(四)加密模式、填充模式_第2张图片

优点 : 同样的原文生成的密文不一样

缺点 : 串行处理数据.

 

填充模式

当需要按块处理的数据, 数据长度不符合块处理需求时, 按照一定的方法填充满块长的规则

NoPadding

不填充.

在DES加密算法下, 要求原文长度必须是8byte的整数倍

在AES加密算法下, 要求原文长度必须是16byte的整数倍

 

PKCS5Padding

数据块的大小为8位, 不够就补足

 

注意

默认情况下, 加密模式和填充模式为 : ECB/PKCS5Padding

如果使用CBC模式, 在初始化Cipher对象时, 需要增加参数, 初始化向量IV : IvParameterSpec iv = new IvParameterSpec(key.getBytes());

你可能感兴趣的:(密码学)