Ce face MD5()
MD5() transformă orice text într-un șir de 32 de cifre hexazecimale. Același text dă mereu același rezultat, iar o mică schimbare în text schimbă complet rezultatul. Era folosită pentru verificarea integrității datelor și pentru chei de căutare.
MD5 nu mai este considerat sigur: se pot găsi ușor două texte cu același rezultat, iar parolele simple se pot afla din tabele precalculate. Funcția nu mai există pe serverul nostru de test (MySQL 26.7): apelul dă eroarea FUNCTION ... MD5 does not exist. Exemplele de mai jos arată rezultatul din MySQL 8.4. Pentru cod nou, folosește SHA2().
Parametri
| Parametru | Descriere |
|---|---|
text |
Textul pentru care se calculează suma. |
Ce returnează
Un text de 32 de caractere hexazecimale sau NULL.
Exemple
Exemplul 1: Suma MD5 a unor texte
SELECT MD5('parola123') AS md5, MD5('') AS text_gol;
Rezultat în MySQL 8.4
+----------------------------------+----------------------------------+
| md5 | text_gol |
+----------------------------------+----------------------------------+
| 095b2626c9b6bad0eb89019ea6091bd9 | d41d8cd98f00b204e9800998ecf8427e |
+----------------------------------+----------------------------------+
Exemplul 2: Verificarea unui text salvat
CREATE TABLE fisiere (nume VARCHAR(30), suma CHAR(32));
INSERT INTO fisiere VALUES ('contract.txt', MD5('Ana Popescu'));
SELECT nume, suma = MD5('Ana Popescu') AS neschimbat FROM fisiere;
Rezultat în MySQL 8.4
+--------------+------------+
| nume | neschimbat |
+--------------+------------+
| contract.txt | 1 |
+--------------+------------+
Exemplul 3: Înlocuitorul recomandat: SHA2()
SELECT SHA2('parola123', 256) AS sha256;
Rezultat
+------------------------------------------------------------------+
| sha256 |
+------------------------------------------------------------------+
| a3a2754f94b4f8c1ca8d29290bc37ba90cedf0e13a9e702a829740835e5ed564 |
+------------------------------------------------------------------+
Greșeli frecvente
- Salvezi parole cu
MD5(). Nu este sigur, iar funcția a fost eliminată; parolele se verifică în aplicație, cu algoritmi precum bcrypt sau Argon2 (în PHP:password_hash()). - Muți o aplicație veche pe un MySQL nou și interogările cu
MD5()dau eroare. Calculează suma în aplicație sau trece laSHA2().
Comenzi înrudite
SHA2(): Calculează suma de control SHA-2 (SHA-224, SHA-256, SHA-384 sau SHA-512) a unui text.SHA1() și SHA(): Calculează suma de control SHA-1 a unui text (40 de cifre hexazecimale); eliminată din versiunile noi.CRC32(): Calculează suma de control CRC32 a unui text: un număr pe 32 de biți.