Funkcja sha1_file() w PHP

Przykład

Obliczanie hasha SHA-1 pliku tekstowego "test.txt":

<?php
$filename = "test.txt";
$sha1file = sha1_file($filename);
echo $sha1file;
?>

Wyjście kodu powyżej:

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

Definicja i użycie

Funkcja sha1_file() oblicza hash SHA-1 pliku.

Funkcja sha1_file() używa amerykańskiego algorytmu bezpieczeństwa hash SHA-1.

Wyjaśnienie z RFC 3174 - Amerykańska algorytm bezpieczeństwa hash SHA-1 generuje 160-bitowy wynik o nazwie podsumowanie wiadomości. Podsumowanie wiadomości można wprowadzić do algorytmu podpisu, który może generować lub weryfikować podpis wiadomości. Podpisanie podsumowania wiadomości zamiast samej wiadomości zwiększa efektywność procesu, ponieważ rozmiar podsumowania wiadomości jest znacznie mniejszy niż rozmiar wiadomości. Weryfikator podpisu cyfrowego musi używać tego samego algorytmu hashowania, co twórca podpisu cyfrowego.

Zwraca obliczony SHA-1 hash, jeśli pomyślnie, w przeciwnym razie FALSE.

Sintaktyka

sha1_file(file,raw)
Parametry Opis
file Wymagane. Określa plik do obliczenia.
raw

Opcjonalnie. Wartość logiczna, określająca format wyjścia szesnastkowego lub binarnego:

  • TRUE - oryginalny 20-znakowy format binarny
  • FALSE - domyślnie. 40-znakowy liczba szesnastkowa

Szczegóły techniczne

Zwrócona wartość: Zwraca obliczony SHA-1 hash, jeśli pomyślnie, w przeciwnym razie FALSE.
Wersja PHP: 4.3.0+
Log aktualizacji:

W PHP 5.0:raw Parametry są opcjonalne.

Od PHP 5.1 można używać sha1_file() poprzez enkapsulację. Na przykład: sha1_file("http://codew3c.com/..")

Więcej przykładów

Przykład 1

Zapisz SHA-1 hasha pliku "test.txt" w pliku:

<?php
$sha1file = sha1_file("test.txt");
file_put_contents("sha1file.txt",$sha1file);
?>

Testuj, czy "test.txt" został zmodyfikowany (czyli SHA-1 został zmodyfikowany):

<?php
$sha1file = file_get_contents("sha1file.txt");
if (sha1_file("test.txt") == $sha1file)
  {
  echo "Plik jest w porządku.";
  }
else
  {
  echo "Plik został zmieniony.";
  }
?>

Wyjście kodu powyżej:

Plik jest w porządku.