gpt4 book ai didi

java - AES加密在CFB模式下截断文本

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:28 30 4
gpt4 key购买 nike

我正在尝试从文件中读取数据并在 CFB 模式下使用无填充的 AES 加密数据

'AES/CFB/NoPadding'。 IV 长 16 个字节。

鉴于默认情况下 AES 使用 16 字节 block ,如果我使用 CBC 或除 CFB 之外的任何其他模式,我会考虑使用填充方案。 CFB 本质上不需要对明文进行填充。

所以问题是,如果我的文件包含小于 16 字节的数据,则不会加密任何内容。如果它大于 16 个字节,则只有前 16 个字节被加密。

这清楚地表明 block 大小正在启动,并且是否存在字节 w.r.t. 的下溢或溢出。 block 大小,然后丢弃该数据/字节。

我不明白的是,在使用 CFB 时,我不需要填充数据......对吧!那么为什么 AES 的 16 字节默认 block 大小开始起作用并截断数据?

最佳答案

您未能指定要为该模式反馈的位数,因此您将获得默认的 128 位。听起来您想要 8 位,为此您应该将以下参数用于 getInstance():

Cipher.getInstance("AES/CFB8/NoPadding");

关于java - AES加密在CFB模式下截断文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11028239/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com