我的输入表单和mysql数据库是用拉丁语编码的当我完全更改为utf-8时,我无法更改数据库中的密码(它们是编码的)。我假设,如果人们在密码中使用特殊字符,并且新的登录表单是utf-8,那么他们将被锁定。对吗(例如,如果他们使用ä (字母)解决方案?我可以试着检查他们的登录密码(当他们试图登录时)和他们输入的拉丁转换。。。如果匹配,我会用utf8输入自动重新设置他们的密码。是这样吗?
hpxqektj1#
table mysql.user 你在问什么?或者这是新的插件?该表中的密码不是实际的密码,而是通过单向加密输入的,然后存储在与ascii、latin1和utf8兼容的文本中。别担心那张表里的那列。如果您正在进行自己的密码管理,那么您就遗漏了一些信息。你是用utf8还是拉丁文1连接的?让我们看看 SHOW CREATE TABLE . 您是否在不加密的情况下存储pwd(因此更易受攻击)?那你是怎么转换table的呢?有几种错误的方法。我建议你现在就检查一下,免得乱七八糟。将非ascii字符存储在某个表中,然后执行以下操作 SELECT col, HEX(col) FROM ... ; 我们可以看到它是否被正确地存储,而不是“双重编码”或其他令人讨厌的东西。更多讨论
mysql.user
SHOW CREATE TABLE
SELECT col, HEX(col) FROM ...
1条答案
按热度按时间hpxqektj1#
table
mysql.user
你在问什么?或者这是新的插件?该表中的密码不是实际的密码,而是通过单向加密输入的,然后存储在与ascii、latin1和utf8兼容的文本中。别担心那张表里的那列。
如果您正在进行自己的密码管理,那么您就遗漏了一些信息。你是用utf8还是拉丁文1连接的?让我们看看
SHOW CREATE TABLE
. 您是否在不加密的情况下存储pwd(因此更易受攻击)?那你是怎么转换table的呢?有几种错误的方法。我建议你现在就检查一下,免得乱七八糟。将非ascii字符存储在某个表中,然后执行以下操作
SELECT col, HEX(col) FROM ...
; 我们可以看到它是否被正确地存储,而不是“双重编码”或其他令人讨厌的东西。更多讨论