0

在这个问题的答案中,我找到了回复:TurboPower LockBox 3: AES128 and padding ISO 10126

(2) 对于大多数链接模式,TPLB3 会自动添加盐。这通常是一件好事,但如果您不需要它,您可以删除它的选项。

我怎样才能做到这一点?即我需要加密,它具有与纯文本长度相同的密文长度。

4

1 回答 1

1

假设您没有使用 ECB,最简单的方法是删除密文的前 8 个字节。前 8 个字节(64 位)是盐随机数。它也是 IV 的低 64 位。IV 的高 64 位为零。

请注意:不给您的消息加盐是非常糟糕的做法,也是一个安全漏洞。(有关更多信息,请参阅维基百科)。你说你需要加密,它的密文长度与明文长度相同。这基本上是说,你想要弱加密。这取决于您,但我的建议是在继续之前仔细考虑您的要求。

另一种技术是创建您自己的链接模式并将其注册到密码库中。例如,如果您想要不加盐的 CBC,请从 TCBC(单元 TPLB3.CBC)创建一个类后代,然后重写 ChainingFeatures() 函数以添加 cfNoNounce 功能。请参阅单元 TPLB3.BlockCipher 中的行内注释。但是,我的建议是第一种方法。

您可能还想阅读相关问题的答案:

另请注意,如果您使用 ECB 链接模式,则没有盐,此模式是否自动具有 cfNoNounce 功能。(ECB 不好。不要使用它,除非用于测试目的)。

脚注:

我是 TPLockBox 3 的主要作者,我在以下位置维护库的版本:

我假设您使用的是那个版本,而不是 SourceForge 版本。我期待在 2014 年 11 月 7 日发布 3.6.0 版。

于 2014-11-06T01:01:10.880 回答