Hur fungerar MySQL‑lösenordshashning?

MySQL använder kryptografisk hashning för att säkert lagra användarlösenord. Istället för att lagra lösenorden som klartext konverterar MySQL dem till hash‑strängar med fast längd med hjälp av envägs‑matematiska funktioner. När en användare försöker logga in hashar MySQL det angivna lösenordet och jämför det med den lagrade hashen. Om de matchar lyckas autentiseringen. Detta tillvägagångssätt säkerställer att även om någon får åtkomst till databasen kan de inte direkt läsa användarlösenorden.

Den moderna MySQL Native Password‑algoritmen använder SHA‑1‑hashning två gånger: SHA1(SHA1(password)). Denna dubbla hashning ger ett extra säkerhetslager. Den resulterande 40‑teckens hexadecimala strängen föregås av en asterisk (*) för att indikera att det är ett hashat lösenord, vilket ger värden som *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19.

Verktygsbeskrivning

MySQL‑lösenordshashgeneratorn skapar autentiseringshashar som är kompatibla med MySQL‑ och MariaDB‑databaser. Ange ett lösenord och generera omedelbart den motsvarande hashen som kan användas direkt i SQL‑satser som CREATE USER eller ALTER USER. Verktyget stödjer både det moderna MySQL Native Password‑formatet (MySQL 4.1 och senare) och det äldre Old Password‑formatet för äldre system.

Exempel

MySQL Native Password (4.1+):

  • Input: mypassword
  • Output: *FABE5482D5AADF36D028AC443D117BE1180B9725

Old Password (Pre‑4.1):

  • Input: mypassword
  • Output: 162eebfb6477e5d3

SQL‑användning:

-- Skapa användare med hashat lösenord
CREATE USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

-- Uppdatera befintligt användarlösenord
ALTER USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

Funktioner

  • MySQL Native Password: Genererar SHA1(SHA1(password))-hashar för MySQL 4.1+ och MariaDB
  • Legacy Old Password: Stöder pre‑MySQL 4.1‑hashformat för bakåtkompatibilitet
  • Realtime‑hashning: Hashen uppdateras omedelbart medan du skriver
  • Visningsväxel för lösenord: Visa eller dölj lösenordsinmatning för enklare inmatning
  • Ett‑klick‑kopiering: Kopiera snabbt den genererade hashen till urklipp

Användningsområden

  • Skapa MySQL‑användarkonton med för‑hashade lösenord i distributionsskript
  • Migrera användare mellan MySQL‑databaser samtidigt som lösenordshashar bevaras
  • Testa och validera MySQL‑autentiseringskonfigurationer
  • Generera lösenordshashar för MySQL‑kompatibla applikationer
  • Felsöka autentiseringsproblem genom att jämföra förväntade och faktiska hashvärden

Stödda hash‑format

Format Algoritm MySQL‑version Exempel på output
MySQL Native Password SHA1(SHA1(password)) 4.1+ *2470C0C06DEE42FD...
Old Password Anpassad hash Pre‑4.1 6f8c114b58f2ce9e

Säkerhetsaspekter

MySQL Native Password‑hashen är det rekommenderade formatet för alla moderna MySQL‑ och MariaDB‑installationer. Old Password‑formatet anses osäkert och bör endast användas för kompatibilitet med äldre system som inte kan uppgraderas. MySQL 8.0 introducerade caching_sha2_password som ny standard, men mysql_native_password förblir brett stödjande och vanligt förekommande.