有没有办法在 C# 中使用没有 IV 的 CBC 模式实现 TripleDES 加密?

Is there a way to implement TripleDES encryption using CBC mode without an IV in C#?

我必须将数据从 C# 应用程序发送到 JAVA 应用程序。 JAVA 开发人员表示他们已经使用 CBC 模式实现了 TripleDES (3DES) 加密来解密来自其他应用程序的消息。他们提供了以下信息以在发送消息之前加密消息。

加密:TripleDES (3DES)(对称) 模式:CBC 填充:PKCS5 IV(盐):没有使用IV/salt

请指导我,有没有办法在没有 IV/salt 的情况下实现 CBC 模式? C# 中的 TripleDES 提供程序生成一个随机 IV(如果没有手动设置 IV)并且在不使用 IV 的情况下解密失败。

IV 对于 CBC 的实施至关重要 - 没有 IV 就无法使用 CBC,因为那样它就不再是 CBC,它是其他东西。

很可能其他开发团队使用了允许实现者省略 IV 的 CBC 实现,即使在幕后它随机生成一个或使用 IV 的零值。

澄清 - MindSwipe 是正确的,而 Java 开发人员是不正确的 - 他们只是没有意识到这一点,因为他们使用的库正在从他们那里抽象出需求。

我建议向 Java 开发人员解释以上内容,并要求他们确认使用的 IV 是否只是零值,例如64 0 位。