Ce face md5
md5 transformă orice text într-o amprentă de lungime fixă (32 de caractere). Același text dă mereu aceeași amprentă, iar o mică schimbare dă o amprentă complet diferită. Este folosită pentru verificarea integrității fișierelor, chei de cache sau detectarea duplicatelor.
MD5 este considerat nesigur pentru securitate: se pot construi două texte diferite cu aceeași amprentă, iar amprentele parolelor comune se găsesc în tabele publice. Pentru parole folosește password_hash, iar pentru semnături hash_hmac.
md5_file($fisier) calculează amprenta conținutului unui fișier, fără să îl citești tu în memorie.
Parametri
| Parametru | Descriere |
|---|---|
$string |
Textul pentru care se calculează amprenta. |
$binary |
Opțional. true returnează 16 octeți binari în loc de 32 de caractere hexazecimale. |
Ce returnează
Amprenta MD5, ca text de 32 de caractere hexazecimale.
Exemple
Exemplul 1: Amprenta unui text
<?php
echo md5("dexblog") . "\n";
echo md5("Dexblog") . "\n";
echo strlen(md5("orice text, oricât de lung"));
Rezultat
eef1771a1990919bae19d3cba1128be6
06f4985dcc100256177483c7688a1519
32
Exemplul 2: Verificarea unui fișier cu md5_file
<?php
file_put_contents("backup.sql", "INSERT INTO clienti VALUES (1, 'Ana');");
$amprenta = md5_file("backup.sql");
echo $amprenta . "\n";
// mai târziu, după copiere
var_dump(md5_file("backup.sql") === $amprenta);
Rezultat
ba37b6fbcbdc1f8ae2d2671c1d888883
bool(true)
Exemplul 3: Cheie de cache dintr-o cerere
<?php
$parametri = ["oras" => "Iași", "pagina" => 2];
$cheie = "cautare_" . md5(json_encode($parametri));
echo $cheie;
Rezultat
cautare_643e27e624fb4e04a003a6765f75d4a8
Greșeli frecvente
- Salvezi parolele cu
md5($parola). Amprentele parolelor uzuale se găsesc în câteva secunde. Foloseștepassword_hash. - Încerci să „decriptezi” un MD5. Amprenta nu poate fi inversată; poate fi doar comparată cu amprenta unui text cunoscut.
Comenzi înrudite
sha1: Calculează amprenta SHA-1 a unui text: 40 de caractere hexazecimale. Nu mai este recomandată pentru securitate.hash: Calculează amprenta unui text cu algoritmul ales: sha256, sha512, sha3-256, xxh3 și multe altele.password_hash: Creează un hash sigur pentru o parolă, gata de salvat în baza de date. Este modul corect de a stoca parole.crc32: Calculează suma de control CRC32 a unui text, ca număr întreg. Rapidă, dar doar pentru detectarea erorilor.