Skip to main content

Chữ ký tệp là gì?

Một chữ ký tệp trong lập trình máy tính là một số nhận dạng duy nhất nằm ở đầu tệp.Số này xác định loại tệp, cung cấp thông tin về dữ liệu có trong tệp thực tế.Thông tin này có thể được sử dụng để xác định loại tệp nào đang được đọc khi phần mở rộng tệp hoặc lỗi người dùng đã xác định nhầm tệp là một loại không chính xác.Chữ ký tệp cũng có thể chứa thông tin đảm bảo dữ liệu gốc được lưu trữ trong tệp vẫn còn nguyên vẹn và chưa được sửa đổi.Sự kết hợp của các yếu tố này cho phép một chữ ký tệp phục vụ như một hình thức xác minh quan trọng, đặc biệt là đối với virus máy tính. Khái niệm về chữ ký tệp xuất hiện vì nhu cầu tiêu đề tệp, một khối dữ liệu khi bắt đầuTệp xác định các tham số về cách lưu trữ thông tin trong tệp.Một phần của thông tin tiêu đề là một chuỗi các byte xác định loại tệp ban đầu được tạo.Đây có thể là một tệp hình ảnh, một tài liệu từ một chương trình cụ thể hoặc thậm chí là loại giao thức khi luồng tệp được sử dụng làm phương thức truyền thông giữa máy khách và máy chủ.Tiêu đề tệp không sử dụng một tiêu chuẩn xác định;Thay vào đó, nó là độc quyền của từng định dạng khác nhau, có nghĩa là một chương trình hoặc hệ điều hành cần cơ sở dữ liệu chữ ký tệp để xác định loại tệp chưa biết.

Chữ ký tệp thực tế đôi khi được gọi là số ma thuật.Trong lập trình, đây là một giá trị duy nhất trong trường dữ liệu mà nó chiếm.Khi xem tiêu đề tệp để xác định loại tệp, điều này có nghĩa là không có hai chữ ký tệp nào giống nhau, cho phép từng loại định dạng có một chuỗi byte xác định riêng biệt.Điều này có thể được sử dụng đặc biệt khi xử lý việc chuyển và giải thích các tệp trực tuyến, trong đó việc mở rộng xác định của tệp có thể tùy ý và không thể dựa vào như một định danh cho một loại tệp. Ngoài ra chỉ có loại tệp, một chữ ký tệp cũng có thể chứa thông tin cho phép kiểm tra lỗi được thực hiện trên một tệp để dữ liệu mà nó đang lưu giữ có thể được xác nhận là còn nguyên vẹn.Điều này thường được thực hiện bằng cách sử dụng một chức năng được gọi là tổng kiểm tra.Tổng kiểm tra là một hàm sử dụng các giá trị số nguyên của dữ liệu tệp để tạo các giá trị toán học có thể được sao chép sau khi một tệp được truyền hoặc tải.Ở dạng cơ bản nhất, quá trình này liên quan đến việc thêm các giá trị của một loạt byte trong tệp và sau đó ghi tổng, cho phép chương trình giải mã tệp để thực hiện cùng một hàm.Nếu kết quả khác nhau trong quá trình giải mã, thì tệp có thể đã bị hỏng và dữ liệu có thể không hợp lệ hoặc có thể đã được sửa đổi cho các mục đích độc hại.