Функция sha1_file() в PHP

Пример

Вычисление хеша SHA-1 текстового файла "test.txt":

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

Вывод кода выше:

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

Определение и использование

Функция sha1_file() вычисляет хеш SHA-1 файла.

Функция sha1_file() использует американский безопасный хеш-алгоритм 1.

Объяснение из RFC 3174 - Американский безопасный хеш-алгоритм 1: SHA-1 генерирует 160-битный вывод, называемый резюме сообщения. Резюме сообщения может быть введено в алгоритм подписи, который может генерировать или проверять подпись сообщения. Подпись резюме сообщения, а не сообщения само по себе, может повысить эффективность процесса, так как размер резюме сообщения обычно значительно меньше размера сообщения. Проверяющий цифровой подпись должен использовать такой же хеш-алгоритм, как и создатель цифровой подписи.

Возвращает вычисленный SHA-1 хеш, если успешен, в противном случае FALSE.

Синтаксис

sha1_file(file,raw)
Параметры Описание
file Обязателен. Определяет файл для вычисления.
raw

Опционально. Булево значение, определяющее формат вывода шестнадцатеричного или двоичного формата:

  • TRUE - исходный 20-битный двоичный формат
  • FALSE - по умолчанию. 40-значное шестнадцатеричное число

Технические детали

Возврат значений: Возвращает вычисленный SHA-1 хеш, если успешен, в противном случае FALSE.
Версия PHP: 4.3.0+
Журнал обновлений:

В PHP 5.0:raw Параметр становится опциональным.

С PHP 5.1 можно использовать sha1_file() через обертку. Например: sha1_file("http://codew3c.com/..")

Более примеров

Пример 1

Сохранить SHA-1 хеш файла "test.txt":

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

Тестировать, был ли изменен "test.txt" (т.е. был ли изменен SHA-1):

<?php
$sha1file = file_get_contents("sha1file.txt");
if (sha1_file("test.txt") == $sha1file)
  {
  echo "Файл в порядке.";
  }
else
  {
  echo "Файл был изменен.";
  }
?>

Вывод кода выше:

Файл в порядке.