Συνάρτηση sha1_file() του PHP

Παράδειγμα

Υπολογισμός της χαρακτηριστικής σύγκρισης SHA-1 του αρχείου κειμένου "test.txt":

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

Output of the above code:

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

Ορισμός και χρήση

Η συνάρτηση sha1_file() υπολογίζει την χαρακτηριστική σύγκριση SHA-1 του αρχείου.

Η συνάρτηση sha1_file() χρησιμοποιεί την Αμερικανική Ασφαλής Χαρακτηριστική Σύγκρισης 1.

Ερμηνεία από το RFC 3174 - Η Αμερικανική Ασφαλής Χαρακτηριστική Σύγκρισης 1: SHA-1 παράγει μια απόδοση που ονομάζεται σύνολο μηνυμάτων 160 δισεκατομμυρίων. Το σύνολο μηνυμάτων μπορεί να εισαχθεί σε μια συνάρτηση που μπορεί να δημιουργήσει ή να επαληθεύσει υπογραφές μηνυμάτων. Η υπογραφή του συνόλου μηνυμάτων αντί για του μηνύματος μπορεί να βελτιώσει την απόδοση του διαδικασμού, επειδή το μέγεθος του συνόλου μηνυμάτων είναι συνήθως πολύ μικρότερο από το μήνυμα. Ο επαληθευτής της ψηφιακής υπογραφής πρέπει να χρησιμοποιεί την ίδια αλγόριθμο χάραξης όπως ο δημιουργός της ψηφιακής υπογραφής.

Returns the calculated SHA-1 hash if successful, or FALSE if failed.

Syntax

sha1_file(file,raw)
Parameters Description
file Required. Specifies the file to be calculated.
raw

Optional. Boolean value, specifies hexadecimal or binary output format:

  • TRUE - Original 20-character binary format
  • FALSE - Default. 40-character hexadecimal number

Technical Details

Return Value: Returns the calculated SHA-1 hash if successful, or FALSE if failed.
PHP Version: 4.3.0+
Update Log:

In PHP 5.0,raw Parameters become optional.

Since PHP 5.1, sha1_file() can be used through encapsulation. For example: sha1_file("http://codew3c.com/..")

More Examples

Example 1

Store the SHA-1 hash of "test.txt" in the file:

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

Test if "test.txt" has been modified (i.e., SHA-1 has been modified):

<?php
$sha1file = file_get_contents("sha1file.txt");
if (sha1_file("test.txt") == $sha1file)
  {
  echo "The file is ok.";
  }
else
  {
  echo "The file has been changed.";
  }
?>

Output of the above code:

The file is ok.