game streamer Asked: 2023-10-11 14:58:11 +0800 CST2023-10-11 14:58:11 +0800 CST 2023-10-11 14:58:11 +0800 CST 有什么办法可以加密密码吗? 772 我正在尝试 MySQL 中的主从复制,我有一个关于纯文本密码的问题。 当我在主服务器上创建帐户时,我尝试 select * from mysql.slave_master_info;并user_password以纯文本形式显示。 我想知道有没有一种方法可以不使用 SSL 来加密密码? mysql 1 个回答 Voted Best Answer symcbean 2023-10-11T17:43:44+08:002023-10-11T17:43:44+08:00 简短的回答:否(至少在不使用 SO_PEERCRED 的情况下不会,它仅限于 unix 域套接字 - 即不跨网络)。 SSL(或更准确地说 TLS)不会更改用于身份验证的令牌的存储表示形式。它用作身份验证机制,但在提供证明的最后仍然必须提供私钥纯文本。即,在此上下文中,TLS 私钥与 bg 密码没有什么不同。 您可以通过将此帐户的使用限制到特定地址(或 DNS 名称)来提供额外的保护以防止被利用。例如,仅允许来自本地主机并使用 ssh 隧道(这将允许您使用 SO_PEERCRED 但将问题转移到 ssh 身份验证)。 更新 经过一番思考后,我想到限制妥协范围的一种方法是使用计算机的身份作为身份验证令牌(至少是身份验证令牌的一部分)。但是,这是否适用于您的用例尚不清楚。在云环境之外,实际上并没有明确的机器标识的概念,但您可以使用操作系统可用的序列号/硬件配置信息。但请注意,如果您插入新硬件,并且仅在存储受到损害时(而不是在主机受到损害时)才保证密码的机密性,这将会被破坏: echo "$BASE_PASSWORD $( lshw )" | md5sum 在主数据库上相应地设置密码,并配置启动脚本以在需要时将值注入从数据库中。
简短的回答:否(至少在不使用 SO_PEERCRED 的情况下不会,它仅限于 unix 域套接字 - 即不跨网络)。
SSL(或更准确地说 TLS)不会更改用于身份验证的令牌的存储表示形式。它用作身份验证机制,但在提供证明的最后仍然必须提供私钥纯文本。即,在此上下文中,TLS 私钥与 bg 密码没有什么不同。
您可以通过将此帐户的使用限制到特定地址(或 DNS 名称)来提供额外的保护以防止被利用。例如,仅允许来自本地主机并使用 ssh 隧道(这将允许您使用 SO_PEERCRED 但将问题转移到 ssh 身份验证)。
更新
经过一番思考后,我想到限制妥协范围的一种方法是使用计算机的身份作为身份验证令牌(至少是身份验证令牌的一部分)。但是,这是否适用于您的用例尚不清楚。在云环境之外,实际上并没有明确的机器标识的概念,但您可以使用操作系统可用的序列号/硬件配置信息。但请注意,如果您插入新硬件,并且仅在存储受到损害时(而不是在主机受到损害时)才保证密码的机密性,这将会被破坏:
在主数据库上相应地设置密码,并配置启动脚本以在需要时将值注入从数据库中。