我正在尝试从文件中读取数据并使用AES在CFB模式下进行加密,而不进行任何填充'AES/CFB/NoPadding'。IV长度为16字节。
考虑到AES默认工作于16字节块上,如果我使用CBC或其他模式,我会考虑使用填充方案,但CFB本质上不需要对明文进行填充。
所以问题在于,如果我的文件包含的数据小于16字节,则什么也不会被加密。如果它大于16字节,则只有前16字节被加密。
这清楚地表明块大小正在发挥作用,如果存在相对于块大小的下溢或上溢,则该数据/字节将被丢弃。
我不理解的是,在使用CFB时,我不需要对数据进行填充,对吗!那么为什么AES的16字节默认块大小会起作用并截断数据?