VALIDATE_PASSWORD_STRENGTH() în MySQL

Criptare și hash MySQL 5.6.6+

Evaluează cât de puternică este o parolă: 0 (slabă), 25, 50, 75 sau 100 (puternică).

Sintaxă
VALIDATE_PASSWORD_STRENGTH(parola)

Ce face VALIDATE_PASSWORD_STRENGTH()

Evaluarea este făcută de componenta validate_password. Dacă această componentă nu este instalată (cazul serverelor noi, instalate implicit), funcția returnează mereu 0. Se instalează de un administrator cu INSTALL COMPONENT 'file://component_validate_password'.

Rezultatul crește pe măsură ce parola trece teste mai stricte: 0 pentru mai puțin de 4 caractere, 25 dacă este mai scurtă decât validate_password.length (implicit 8), 50 pentru politica LOW (doar lungimea), 75 pentru MEDIUM (cifre, litere mici și mari, caractere speciale) și 100 pentru STRONG (în plus, verificarea într-un dicționar, dacă este configurat unul). O parolă identică cu numele utilizatorului primește 0.

Parametri

Parametru Descriere
parola Parola evaluată, în clar.

Ce returnează

Un număr: 0, 25, 50, 75 sau 100; NULL pentru NULL.

Exemple

Exemplul 1: Parole de diferite tării

Cu componenta instalată și setările implicite (lungime minimă 8, politică MEDIUM, fără fișier dicționar).

SELECT VALIDATE_PASSWORD_STRENGTH('abc') AS prea_scurta,
       VALIDATE_PASSWORD_STRENGTH('ana1') AS scurta,
       VALIDATE_PASSWORD_STRENGTH('parola123') AS doar_lungime,
       VALIDATE_PASSWORD_STRENGTH('Iasi.Ana#2026') AS complexa;

Rezultat în MySQL, cu componenta validate_password instalată

+-------------+--------+--------------+----------+
| prea_scurta | scurta | doar_lungime | complexa |
+-------------+--------+--------------+----------+
|           0 |     25 |           50 |      100 |
+-------------+--------+--------------+----------+

Exemplul 2: Fără componentă, rezultatul este 0

Pe serverul de test, componenta validate_password nu este instalată.

SELECT VALIDATE_PASSWORD_STRENGTH('Iasi.Ana#2026') AS fara_componenta;

Rezultat

+-----------------+
| fara_componenta |
+-----------------+
|               0 |
+-----------------+

Greșeli frecvente

  • Concluzionezi că orice parolă e slabă pentru că primești 0. Verifică întâi dacă componenta este instalată: SELECT * FROM mysql.component;.
  • Trimiți parole reale în interogări care ajung în jurnale (general log, slow log). Evaluează parola în aplicație dacă jurnalele nu sunt protejate.

Comenzi înrudite

  • SHA2(): Calculează suma de control SHA-2 (SHA-224, SHA-256, SHA-384 sau SHA-512) a unui text.
  • AES_ENCRYPT() și AES_DECRYPT(): Criptează și decriptează date cu algoritmul AES; fără cheie, datele nu pot fi citite.