AES / CBC / PKCS5Padding与AES / CBC / PKCS7Padding与256键大小性能java [英] AES/CBC/PKCS5Padding vs AES/CBC/PKCS7Padding with 256 key size performance java

查看:2822
本文介绍了AES / CBC / PKCS5Padding与AES / CBC / PKCS7Padding与256键大小性能java的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在使用 c> AES / CBC / PKCS5Padding 来加密Java中具有 256字节密钥大小的文件,但是当我在stackexchange上找到#hp = a>并且被提及,

I am currently using AES/CBC/PKCS5Padding for encrypting files in Java with 256 bytes key size, but while searching I found on stackexchange PKCS#5-PKCS#7 Padding and it is mentioned,


PKCS#5填充是用于8字节块大小的PKCS#7填充的子集

PKCS#5 padding is a subset of PKCS#7 padding for 8 byte block sizes

所以我想知道


  1. AES / CBC / PKCS7Padding 将会比以上配置的 AES / CBC / PKCS5Padding 更好?

  2. 如何在Java中配置块大小

  1. Will the performance of AES/CBC/PKCS7Padding will be better then AES/CBC/PKCS5Padding for the above configuration?
  2. How can we configure the block size in Java as it is mentioned

PKCS#7填充适用于从1到255个字节。

PKCS#7 padding would work for any block size from 1 to 255 bytes.


我的示例代码是

SecureRandom rnd = new SecureRandom();
IvParameterSpec iv = new IvParameterSpec(rnd.generateSeed(16));

KeyGenerator generator = KeyGenerator.getInstance("AES");
generator.init(256);
SecretKey k = generator.generateKey();

Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");
c.init(Cipher.ENCRYPT_MODE, k, iv);


推荐答案

块大小是使用的密码算法的属性。对于AES,它总是16个字节。

The block size is a property of the used cipher algorithm. For AES it is always 16 bytes.

所以严格来说,PKCS5Padding不能与AES一起使用,因为它仅限于8个字节的块大小。我假设AES / CBC / PKCS5Padding在内部被解释为AES / CBC / PKCS7Padding。

So strictly speaking, PKCS5Padding cannot be used with AES since it is defined only for a block size of 8 bytes. I assume, AES/CBC/PKCS5Padding is interpreted as AES/CBC/PKCS7Padding internally.

这些填充方案的唯一区别是PKCS7Padding具有块大小作为参数而PKCS5Padding则固定为8个字节。当块大小为8个字节时,它们完全一样。

The only difference between these padding schemes is that PKCS7Padding has the block size as a parameter, while for PKCS5Padding it is fixed at 8 bytes. When the Block size is 8 bytes they do exactly the same.

这篇关于AES / CBC / PKCS5Padding与AES / CBC / PKCS7Padding与256键大小性能java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆