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żywaj password_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)
📘 Naucz się w lekcji →