【问题标题】:Should you use openssl as command line or compile the library into the programming project?您应该使用 openssl 作为命令行还是将库编译到编程项目中?
【发布时间】:2020-10-07 03:58:27
【问题描述】:

例如,您可以将 openssl 编译到您的 C++ 项目中,并将所有内容制作为单个 .exe 文件。这是正确的做法吗?

或者我们应该只是将 openssl.exe 命令行实用程序复制并粘贴到我们程序的 exe 位置,然后在我们的程序中调用 openssl 命令? Example("openssl enc -aes-cbc-256.....")

我正在做一个更大的项目,不想犯这个新手错误。例如,我看到 NordVpn 的安装位置 openssl.exe 似乎没有被编译到他们的 .exe 中?

【问题讨论】:

    标签: c++ c command-line openssl


    【解决方案1】:

    这取决于你在做什么样的项目。您将动态或静态链接 openssl(您可以在任何地方阅读有关优点/缺点的信息)。请考虑使用其他更易于使用的库。我会推荐https://libsodium.gitbook.io/doc/。在我看来,它更适合初学者。 如果您有安全问题,请阅读:https://security.stackexchange.com/a/94629

    【讨论】:

    • 在调用外部可执行文件的情况下,我不会说“动态链接”。通常你动态链接到一个 DLL(或 linux 上的 SO)——第三个选项没有提到......
    【解决方案2】:

    如果您追求的是应用程序中数据的安全加密/解密,我强烈建议 1) 编译您自己的 OpenSSL 库(或您选择的任何加密库),以及 2) 将它们静态链接到您的应用程序中。

    调用外部工具的安全性要低得多。而且您甚至无法确定您的应用调用的外部工具二进制文件是否与您最初分发的相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-29
      • 1970-01-01
      • 2019-08-17
      相关资源
      最近更新 更多