在这个问题的答案中,我找到了回复:TurboPower LockBox 3: AES128 and padding ISO 10126
(2)对于大多数链接模式,TPLB3会自动添加盐。这通常是一件好事,但如果你不需要它,你可以删除它的选项。
我该怎么做?即我需要加密,其密文长度与纯文本长度相同。
答案 0 :(得分:1)
假设您没有使用ECB,最简单的方法是删除密文的前8个字节。前8个字节(64位)是salt nonce。它也是IV的低64位。 IV的高64位为零。
请注意:不对您的邮件进行腌制是非常糟糕的做法和安全漏洞。 (有关更多信息,请参阅wikipedia)。你说你需要加密,其密文长度与明文长度相同。这基本上是说,你想要弱加密。这取决于你,但我的建议是在继续之前仔细考虑你的要求。
另一种技术是创建自己的链接模式并将其注册到加密库中。例如,如果您想要没有盐的CBC,请从TCBC创建一个类后代(单元TPLB3.CBC),然后重写ChainingFeatures()函数以添加cfNoNounce功能。请参阅单元TPLB3.BlockCipher中的内嵌注释。但是,我的建议是第一种方法。
您可能还想阅读相关问题的答案:
另请注意,如果您使用ECB链接模式,则没有盐,此模式是否自动具有cfNoNounce功能。 (ECB很糟糕。除了测试目的外,不要使用它。)
我是TPLockBox 3的主要作者,我维护了该库的版本:
我假设您使用的是该版本,而不是SourceForge版本。我期待在2014年11月7日发布3.6.0版本。