MD5() în MySQL

Criptare și hash MySQL 5.0+ (eliminată în versiunile noi)

Calculează suma de control MD5 a unui text (32 de cifre hexazecimale); eliminată din versiunile noi.

Sintaxă
MD5(text)

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 la SHA2().

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.