Kuidas MySQL paroolihashimine töötab?

MySQL kasutab krüptograafilist hashimist, et turvaliselt salvestada kasutajate paroole. Selle asemel, et paroole salvestada selges tekstis, teisendab MySQL need fikseeritud pikkusega hash‑stringideks, kasutades ühe‑suuna matemaatilisi funktsioone. Kui kasutaja proovib sisse logida, hash‑ib MySQL sisestatud parooli ja võrdleb seda salvestatud hashiga. Kui need kattuvad, õnnestub autentimine. See lähenemine tagab, et isegi kui keegi pääseb andmebaasi juurde, ei saa ta otse kasutajate paroole lugeda.

Kaasaegne MySQL Native Password algoritm rakendab SHA‑1 hashimist kaks korda: SHA1(SHA1(password)). See topelt‑hashimine lisab täiendava turvakihi. Tulemuseks on 40‑märgiline kuueteistkümnendsüsteemi string, millele on eesliitena tärn (*) märgitud, et näidata, et tegemist on hashitud parooliga, näiteks *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19.

Tööriista kirjeldus

See MySQL Password Hash Generator loob autentimis‑hashid, mis on ühilduvad MySQL‑ ja MariaDB‑andmebaasidega. Sisesta ükskõik milline parool ja genereeri koheselt vastav hash, mida saab otse kasutada SQL‑lausete nagu CREATE USER või ALTER USER sees. Tööriist toetab nii kaasaegset MySQL Native Password formaati (MySQL 4.1 ja uuemad) kui ka vanemat Old Password formaati vanematele süsteemidele.

Näited

MySQL Native Password (4.1+):

  • Sisend: mypassword
  • Väljund: *FABE5482D5AADF36D028AC443D117BE1180B9725

Old Password (Pre-4.1):

  • Sisend: mypassword
  • Väljund: 162eebfb6477e5d3

SQL‑kasutus:

-- Loo kasutaja hashitud parooliga
CREATE USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

-- Uuenda olemasoleva kasutaja parooli
ALTER USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

Funktsioonid

  • MySQL Native Password: Genereerib SHA1(SHA1(password)) hashid MySQL 4.1+ ja MariaDB jaoks
  • Legacy Old Password: Toetab MySQL 4.1‑eelset hash‑formaati tagasijõudluse tagamiseks
  • Reaalajas hashimine: Hash uuendatakse koheselt sisestamise ajal
  • Parooli nähtavuse lüliti: Kuva või peida parooli sisestus, et sisestamine oleks mugavam
  • Ühe klõpsuga kopeerimine: Kopeeri genereeritud hash kiiresti lõikelauale

Kasutusjuhtumid

  • MySQL‑kasutajakontode loomine eel‑hashitud paroolidega juurutusskriptides
  • Kasutajate migreerimine MySQL‑andmebaaside vahel, säilitades paroolihashid
  • MySQL‑autentimiskonfiguratsioonide testimine ja valideerimine
  • Paroolihashide genereerimine MySQL‑ühilduvatele rakendustele
  • Autentimisprobleemide tõrkeotsing, võrreldes oodatud ja tegelikke hashe

Toetatud hash‑vormingud

Vorming Algoritm MySQL versioon Väljundi näide
MySQL Native Password SHA1(SHA1(password)) 4.1+ *2470C0C06DEE42FD...
Old Password Kohandatud hash Pre-4.1 6f8c114b58f2ce9e

Turvalisuse kaalutlused

MySQL Native Password hash on soovitatav formaat kõigile kaasaegsetele MySQL‑ ja MariaDB‑paigaldustele. Old Password vormingut peetakse ebaturvaliseks ning seda tuleks kasutada ainult vanade süsteemide ühilduvuse tagamiseks, mida ei saa uuendada. MySQL 8.0 tutvustas caching_sha2_password uut vaikimisi valikut, kuid mysql_native_password jääb laialdaselt toetatud ja laialdaselt kasutatavaks.