【问题标题】:mysql C ssl connection what cipher to use?mysql C ssl连接使用什么密码?
【发布时间】:2016-03-10 11:02:41
【问题描述】:

您好,我正在使用 C 连接到 mysql 数据库。数据库在运行 apache 的服务器上运行。我已经有了从我的设备到服务器和 mysql 数据库的有效连接。现在我必须使用 ssl 加密 mysql 数据流。

我在 mysql C API 中找到了函数 mysql_set_ssl()。我找到了该函数的一些示例,但我有点困惑,因为在某些示例中,密码设置为 NULL,而另一些示例则有密码。

我的问题是它们之间有什么区别以及我应该使用什么密码?

【问题讨论】:

  • 您能否编辑您的问题并明确您如何连接到数据库? “数据库在 apache 上运行。”似乎表明您对它有某种 http 访问权限,而不是直接连接?
  • 现在更清楚了吗?连接本身已经没问题,如果这也有帮助,我会使用 mysql 的 C 库。我遇到的主要问题是如何建立 ssl 加密。我在 API 中读到我要求的密码用于加密,但是关于我没有真正找到的密码的更多信息。因此,我查找了有关它的示例,在某些示例中,我看到密码为 NULL,而在其他示例中,密码内部包含“DHE-RSA-AES256-SHA”之类的内容。所以这就是为什么我对使用什么感到困惑

标签: mysql c security ssl encryption


【解决方案1】:

来自the documentation

  • cipher 是允许用于 SSL 加密的密码列表。

任何未使用的 SSL 参数都可以指定为NULL

这表明将NULL 作为密码传递意味着“只使用任何密码”。如果您想指定允许的密码(例如因为某些密码不安全),您可以传递允许的密码列表。有关它们可能是什么的信息可以是obtained here

此外,正如更多文档所述:

要确定给定服务器支持哪些密码,请使用以下语句检查 Ssl_cipher_list 状态变量的值:

SHOW SESSION STATUS LIKE 'Ssl_cipher_list';

同一个文档也说你可以

SHOW SESSION STATUS LIKE 'Ssl_cipher';

查看连接是否加密以及如何加密。您可以尝试 NULL 作为参数,看看它是否会自动选择最强的常用密码,因为我怀疑它会这样做。

【讨论】:

    猜你喜欢
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 2015-09-05
    • 2010-11-08
    • 2014-04-07
    • 1970-01-01
    相关资源
    最近更新 更多