Miten MySQL:n salasanahajautus toimii?

MySQL käyttää kryptografista hajautusta tallentaakseen käyttäjäsalasanat turvallisesti. Sen sijaan, että salasanat tallennettaisiin selkokielisinä, MySQL muuntaa ne kiinteän pituisiksi hajautemerkeiksi käyttäen yksisuuntaisia matemaattisia funktioita. Kun käyttäjä yrittää kirjautua, MySQL hajauttaa annetun salasanan ja vertaa sitä tallennettuun hajautukseen. Jos ne täsmäävät, todennus onnistuu. Tämä lähestymistapa varmistaa, että vaikka joku pääsisi käsiksi tietokantaan, hän ei voi lukea käyttäjäsalasanoja suoraan.

Moderni MySQL Native Password -algoritmi käyttää SHA-1 -hajautusta kahdesti: SHA1(SHA1(password)). Tämä kaksinkertainen hajautus tarjoaa lisäsuojakerroksen. Tuloksena oleva 40‑merkkinen heksadesimaalinen merkkijono on etuliitteellä tähti (*) merkiksi, että kyseessä on hajautettu salasana, esimerkiksi *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19.

Työkalun kuvaus

MySQL Password Hash Generator -työkalu luo todennushajautuksia, jotka ovat yhteensopivia MySQL- ja MariaDB-tietokantojen kanssa. Syötä mikä tahansa salasana ja saat välittömästi vastaavan hajautuksen, jota voi käyttää suoraan SQL‑lauseissa kuten CREATE USER tai ALTER USER. Työkalu tukee sekä modernia MySQL Native Password -muotoa (MySQL 4.1 ja uudemmat) että vanhaa Old Password -muotoa vanhemmille järjestelmille.

Esimerkit

MySQL Native Password (4.1+):

  • Syöte: mypassword
  • Tulos: *FABE5482D5AADF36D028AC443D117BE1180B9725

Old Password (Pre-4.1):

  • Syöte: mypassword
  • Tulos: 162eebfb6477e5d3

SQL‑käyttö:

-- Luo käyttäjä hajautetulla salasanalla
CREATE USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

-- Päivitä olemassa olevan käyttäjän salasana
ALTER USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

Ominaisuudet

  • MySQL Native Password: Luo SHA1(SHA1(password))-hajautuksia MySQL 4.1+ ja MariaDB‑ympäristöille
  • Legacy Old Password: Tukee pre‑MySQL 4.1 -hajautusmuotoa yhteensopivuuden varmistamiseksi
  • Reaaliaikainen hajautus: Hajautus päivittyy välittömästi kirjoittaessa
  • Salasanan näkyvyyden vaihtaja: Näytä tai piilota salasanasyöte helpottamaan syöttöä
  • Yhden napsautuksen kopiointi: Kopioi luotu hajautus nopeasti leikepöydälle

Käyttötapaukset

  • MySQL‑käyttäjätunnusten luominen esihajautetuilla salasanoilla käyttöönotto‑skripteissä
  • Käyttäjien siirtäminen MySQL‑tietokantojen välillä säilyttäen salasanahajautukset
  • MySQL‑todennusasetusten testaaminen ja validointi
  • Salasanahajautusten generointi MySQL‑yhteensopiviin sovelluksiin
  • Todennusongelmien vianmääritys vertaamalla odotettuja ja todellisia hajautuksia

Tuetut hajautusmuodot

Muoto Algoritmi MySQL‑versio Esimerkkituloste
MySQL Native Password SHA1(SHA1(password)) 4.1+ *2470C0C06DEE42FD...
Old Password Mukautettu hajautus Pre-4.1 6f8c114b58f2ce9e

Turvallisuushuomautukset

MySQL Native Password -hajautus on suositeltu muoto kaikille nykyaikaisille MySQL‑ ja MariaDB‑asennuksille. Old Password -muotoa pidetään turvattomana, ja sitä tulisi käyttää vain yhteensopivuustarkoituksessa vanhojen järjestelmien kanssa, joita ei voida päivittää. MySQL 8.0 esitteli caching_sha2_password‑menetelmän uutena oletuksena, mutta mysql_native_password on edelleen laajasti tuettu ja yleisesti käytössä.