sql >> Databasteknik >  >> RDS >> Mysql

Mysql lösenordshashningsmetod gammal vs ny

Under vissa förhållanden kanske du fortfarande kan ställa in och använda ett "nytt hashalgoritmlösenord".
MySQL 4.1+-servrar kan hantera båda inloggningsalgoritmerna. Vilken som används är oberoende av variabeln gamla lösenord. Om MySQL hittar en 41 tecken lång hash som börjar med * använder den det nya systemet. Och funktionen PASSWORD() kan också använda båda algoritmerna. Om fältet mysql.user.Password är tillräckligt brett för att lagra 41 tecken och variabeln old-passwords är 0 kommer det att skapa ett "nytt" lösenord. dokumentation för old_passwords säger Variable Scope Both så du kanske kan ändra det för din session.
Anslut till MySQL-servern (med en klient som kan göra det trots de globala old_passwords=1), t.ex. HeidiSQL och prova följande:

SET SESSION old_passwords=0;
SELECT @@global.old_passwords,@@session.old_passwords, Length(PASSWORD('abc'));

Om den skriver ut 1, 0, 41 (vilket betyder att de globala old_passwords är på, men för sessionen är det avstängt och PASSWORD() returnerade ett "nytt" lösenord) bör du kunna ställ in ett nytt lösenord använda den nya algoritmen för ditt konto under samma session.

Men om dreamhost verkligen vill inaktivera den nya lösenordsalgoritmen kommer mysql.user.Password-fältet att vara mindre än 41 tecken långt och det finns inget du kan göra åt det (förutom att tjata på dem).



  1. MySQL SUM() ger felaktig summa

  2. SQLite GLOB

  3. Docker Compose mysql import .sql

  4. Uppdatera värden för flera tabellkolumner med en enda fråga