Roh*_*han 6 java encryption aes padding
我试图从文件读取并使用AES在CFB模式下加密数据,没有填充
' AES/CFB/NoPadding '.IV长16个字节.
鉴于AES默认情况下,使用16字节块,我会考虑使用填充方案,如果我使用CBC或任何其他模式,但CFB.CFB基本上不需要填充明文.
所以问题是如果我的文件包含的数据少于16个字节,那么什么都不加密.如果它大于16个字节,则只有前16个字节被加密.
这清楚地表明块大小正在进入,如果块大小存在下溢或字节溢出,则丢弃该数据/字节.
我不明白的是在使用CFB时,我不需要填充数据..对!那么为什么AES的16字节默认块大小开始起作用并截断数据呢?
您未能指定要为该模式反馈的位数,因此您将获得默认的 128 位。听起来您想要 8 位,为此您应该在 getInstance() 中使用以下参数:
Cipher.getInstance("AES/CFB8/NoPadding");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1207 次 |
最近记录: |