sha1_file

sha1_file($filename, $binary)

Zwraca sumę kontrolną SHA-1 zawartości pliku jako 40 znaków szesnastkowych, przy błędzie false.

Parametry

  • $filename – ścieżka do pliku albo adres URL.
  • $binary – opcjonalny, z true zwraca 20 bajtów zamiast tekstu.

Przykłady

$file = sys_get_temp_dir() . "/garth-przyklad.txt";
file_put_contents($file, "Witaj");
echo sha1_file($file); // 703460da095c307a4ca6faea065f7aa501df2135
var_dump(sha1_file($file) === sha1("Witaj")); // bool(true)
echo strlen(sha1_file($file)); // 40
// wersja pliku według zawartości: zmienia się tylko wtedy, gdy zmieni się zawartość
echo "style.css?v=" . substr(sha1_file($file), 0, 8); // style.css?v=703460da
// bezpieczniejsza suma kontrolna w ten sam sposób
echo strlen(hash_file("sha256", $file)); // 64
unlink($file);

Na co uważać

  • SHA-1 nie jest już bezpieczna wobec celowo podrobionej zawartości. Do sprawdzania pobranych plików i podpisów używaj hash_file("sha256", …).
  • Do zwykłego wykrywania zmian wystarczy też MD5, jest trochę szybsze.
  • Do haseł się nie nadaje, do tego służy password_hash().
  • Przy nieistniejącym pliku wypisze ostrzeżenie i zwróci false.

Powiązane funkcje:
md5_file()
filemtime()
file_get_contents()
sha1()