【问题标题】:AES encryption cuts off text in CFB modeAES 加密在 CFB 模式下截断文本
【发布时间】:2012-06-17 04:47:07
【问题描述】:

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

'AES/CFB/NoPadding'。 IV 的长度为 16 字节。

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

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

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

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

【问题讨论】:

  • 发布您用于加密的代码。

标签: java encryption aes padding


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-12
    • 2015-06-18
    • 1970-01-01
    • 2021-12-30
    • 2021-12-20
    • 2011-06-07
    • 2020-11-09
    • 1970-01-01
    相关资源
    最近更新 更多