PKCS5填充可以处于AES / GCM模式吗?

2022-09-04 01:58:37

AES/GCM 的填充模式是什么?我知道它可以是NoPadding,就像在欧洲央行模式下它可以是PKCS5Padding一样,在GCM模式下呢?在JCE接口中,我们需要提供“算法/模式/填充”(参考)。

因此,我使用以下代码来获取实例,它可以在JDK中工作,但在IBM SDK中失败,该SDK说

找不到支持 AES/GCM/PKCS5 填充的提供程序

 Cipher.getInstance("AES/GCM/PKCS5Padding");

填充的真正用例是什么?


答案 1

GCM是一种流模式,这意味着密文的长度仅为明文(不包括身份验证标记)。GCM 不需要填充。这意味着PKCS5Padding版本实际上只是NoPadding的同义词,以方便编程。

一些提供商没有这种奇怪的模式。Java具有可插入的加密提供程序,基本上所有JRE发行版都有一个默认的加密提供程序,该提供程序可能具有与其他提供程序不同的密码字符串和默认值。

在某些情况下,填充明文是有意义的。例如,您可以通过附加随机长度的 PKCS5Padding 来隐藏实际纯文本的长度。


答案 2