md5
funkcja
Oblicza skrót MD5 ciągu znaków (32 znaki hex). Służy do sum kontrolnych i cache keys — nigdy do haseł.
md5(string $string, bool $binary = false): string
md5 oblicza 128-bitowy skrót MD5 i zwraca go jako 32-znakowy string szesnastkowy. Jeśli $binary = true, zwraca 16-bajtowy ciąg binarny.
⚠️ NIGDY nie używaj
md5()do haseł. MD5 jest algorytmem zaprojektowanym z myślą o szybkości — na nowoczesnym GPU można sprawdzić miliardy kombinacji na sekundę. Hash MD5 hasła jest podatny na ataki słownikowe i tęczowe tablice. Do haseł zawsze używajpassword_hash()z algorytmem bcrypt lub argon2.
MD5 jest natomiast odpowiedni do: sum kontrolnych plików, kluczy cache, weryfikacji integralności danych nieuwierzytelnionych, ETagów HTTP.
<?php
declare(strict_types=1);
// Suma kontrolna pliku (poprawne użycie):
$zawartosc = file_get_contents('dane.csv');
$suma = md5($zawartosc);
echo $suma; // 32-znakowy hex, deterministyczny
// Klucz cache (poprawne użycie):
$klucz = 'user_profile_' . md5($userId . $parametry);
// Weryfikacja pobranego pliku:
$oczekiwana = 'e1bfd762321e409cee4ac0b6e841963c'; // md5('php')
$pobrana = md5(file_get_contents('plik.bin'));
if (!hash_equals($oczekiwana, $pobrana)) {
throw new \RuntimeException('Plik uszkodzony lub zmieniony!');
}
// ❌ NIGDY tak nie rób:
// $hash = md5($hasloUzytkownika); // podatne na ataki!
// Zamiast tego: password_hash($haslo, PASSWORD_DEFAULT)