AES / GCM的填充模式是什么?我知道它可以是NoPadding,因为在ECB模式下它可以是PKCS5Padding,在GCM模式下怎么样?在JCE接口中,我们需要提供“
algorithm / mode / padding”(
Reference).
所以我使用以下代码来获取实例,它在JDK中工作但在IBM SDK中失败了
cannot find provider for supporting AES/GCM/PKCS5Padding
Cipher.getInstance("AES/GCM/PKCS5Padding");
填充的真实用例是什么?
GCM是一种流模式,这意味着密文只与明文一样长(不
包括认证
标签). GCM不需要填充.这意味着PKCS5Padding版本实际上只是NoPadding的同义词,以方便编程.有些提供商没有这种奇怪的模式.
填充明文是有意义的情况.例如,您可以通过附加随机长度PKCS5Padding来隐藏实际明文的长度.