【问题标题】:Problem with encryption & decryption of binary files二进制文件的加密和解密问题
【发布时间】:2010-08-20 08:01:43
【问题描述】:

如何使用 OpenSSL 加密和解密 C 中的二进制文件?

我有一个测试程序,它可以加密然后解密它给出的输入。

我为文本文件执行了测试程序,输出与输入相同,但是当我在二进制文件上执行测试程序时,输出与输入不同。

【问题讨论】:

  • 你应该尽量不要在你的标题中使用 CAPSLOCK,这有点激进。
  • 你能停止喊叫吗?
  • 也许您可以发布您编写的测试程序的一些相关部分?

标签: c linux encryption openssl binaryfiles


【解决方案1】:

只是猜测:您使用的是 Windows 并且在文件操作中错过了 O_BINARY 标志?

【讨论】:

    【解决方案2】:

    您可能正在读取的缓冲区上使用strlen() 之类的字符串函数。 OpenSSL 函数适用于二进制文件。

    【讨论】:

      【解决方案3】:

      没有看到您的代码,我们只能猜测。但我的第一个猜测是,您的加密或解密例程在二进制文件中使用一个或两个 \0 字符。数据必须被视为字节而不是字符串。 (与本页其他地方提到的 StrLen() 问题相同。)

      我不是 C 程序员(!),但我设法让加密例程在 Delphi/Pascal 中工作的方法是下载 OpenSSL source(C 语言)并逐步执行 openssl.exe 应用程序的代码.一旦你弄清楚它们是如何自己做的,使用 EVP_* 函数就会变得容易得多。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-05
        • 1970-01-01
        • 1970-01-01
        • 2014-03-17
        • 1970-01-01
        • 1970-01-01
        • 2018-12-02
        • 1970-01-01
        相关资源
        最近更新 更多