Mysql

為什麼在我的 MySQL 密碼中添加一個字元會鎖定我?

  • February 9, 2021

我可以通過mysql -u myuser -p mydb -h localhost以下方式登錄:

grant all privileges on mydb.* to myuser@'%' identified by
 '1234567890123456789012345678901234567890123456789012345678901234567890123456789';

但不是在我這樣做之後:

grant all privileges on mydb.* to myuser@'%' identified by
 '12345678901234567890123456789012345678901234567890123456789012345678901234567890';

數據庫密碼 79 個字元的硬性限制來自哪裡?

正如 Mircea Vutcovici 所述,密碼僅在散列後儲存,這意味著儲存時它將具有固定長度。

即,應該有這樣的限制並不明顯。

mysql 我相信遇到的可能是客戶端應用程序專門施加的限制。

get_tty_password函式似乎將密碼讀入char buff[80];,這意味著 79 個字元 + 空終止。

https://github.com/MariaDB/server/blob/b4fb15ccd4f2864483f8644c0236e63c814c8beb/mysys/get_password.c#L155

(如果您使用不同的客戶端,是否存在限制?)

引用自:https://serverfault.com/questions/1052564