AES/CBC/PKCS5Padding与AES/CBC/PKCS7Padding具有256个密钥大小的性能java

 文伯雅寧19 发布于 2023-02-08 11:28

我目前正在AES/CBC/PKCS5Padding用于加密具有256字节密钥大小的Java文件,但在搜索时我在stackexchange PKCS#5-PKCS#7 Padding上找到了它,并且提到了,

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

所以我想知道

    对于上述配置,性能AES/CBC/PKCS7Padding会更好AES/CBC/PKCS5Padding吗?

    我们如何在Java中配置块大小,如上所述

    PKCS#7填充适用于1到255字节的任何块大小.

我的示例代码是,

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);

Henry.. 35

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

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

这些填充方案之间的唯一区别是PKCS7Padding具有块大小作为参数,而对于PKCS5Padding,它固定为8个字节.当块大小为8字节时,它们完全相同.

1 个回答
  • 块大小是使用的密码算法的属性.对于AES,它总是16个字节.

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

    这些填充方案之间的唯一区别是PKCS7Padding具有块大小作为参数,而对于PKCS5Padding,它固定为8个字节.当块大小为8字节时,它们完全相同.

    2023-02-08 11:32 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有