Συνάρτηση 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:
|
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.