Tác dụng của hàm sha1-file()
Hàm sha1_file()
tính toán hàm băm sha1 (Thuật toán băm an toàn 1) của một tệp.
Hàm này tính toán hàm băm sha1 của tệp bằng Thuật toán băm bảo mật 1 của Hoa Kỳ và trả về hàm băm đó. Để tính hàm băm sha1 của một chuỗi, hãy sử dụng hàm sha1() .
Bảng sau đây tóm tắt các chi tiết kỹ thuật của chức năng này.
Giá trị trả về: | Trả về hàm băm sha1 khi thành công hoặc FALSE thất bại. |
---|---|
Phiên bản: | PHP 4.3.0+ |
cú pháp
Cú pháp cơ bản của sha1_file()
hàm được đưa ra với:
Ví dụ sau đây cho thấy sha1_file()
chức năng đang hoạt động.
Ví dụ
<?php
// Sample file
$filename = "hello.txt"; // Contains the text "Hello World!"
// Calculating the hash
echo sha1_file($filename);
?>
Đầu ra của ví dụ trên sẽ giống như thế này:
Mẹo: Hàm sha1_file()
thường được sử dụng để tạo mã băm duy nhất cho một tệp được gửi qua mạng. Vì vậy, sau khi tải xuống tệp, người dùng có thể xác minh tính toàn vẹn của nó bằng cách tính toán hàm băm SHA1 của nó và so sánh nó với mã băm được cung cấp cùng với bản phân phối. Quá trình này giúp đảm bảo rằng các tệp được truyền qua mạng không bị hỏng.
Thông số
Hàm sha1_file()
chấp nhận các tham số sau.
Tham số | Sự miêu tả |
---|---|
string |
Yêu cầu. Chỉ định tên của tệp để tạo hàm băm từ đó. |
raw_format | Không bắt buộc. Nếu được đặt thành true , nó sẽ trả về hàm băm ở định dạng nhị phân thô với độ dài là 20. Giá trị mặc định là giá trị false trả về hàm băm dưới dạng số thập lục phân gồm 40 ký tự. |
Thêm ví dụ
Dưới đây là một số ví dụ khác cho thấy sha1_file()
chức năng thực sự hoạt động như thế nào:
Các ví dụ sau minh họa cách xác minh tệp cho bất kỳ thay đổi nào bằng chức năng này.
Mã PHP bên dưới trước tiên lưu trữ hàm băm SHA1 của tệp trong tệp văn bản.
Ví dụ
<?php
// Sample file
$file = "post.php";
// Storing the SHA1 hash of config file in "hash.txt" file
file_put_contents("hash.txt", sha1_file($file));
?>
Và mã PHP sau tính toán và so sánh hàm băm SHA1 của tệp "post.php" với hàm băm SHA1 ban đầu của nó được lưu trữ trong "hash.txt" và cho chúng tôi biết liệu nó có được sửa đổi hay không.
Ví dụ
<?php
// Retrieving the stored SHA1 hash
$prev_hash = file_get_contents("hash.txt");
// Verifying the current SHA1 hash with previous one
if(sha1_file("post.php") == $prev_hash){
echo "There has been no change in the file.";
} else{
echo "The file has been modified.";
}
?>