0
0
Lập trình
Admin Team
Admin Teamtechmely

Cách máy tính phân biệt file ảnh và file văn bản: Từ đuôi mở rộng đến Magic Number

Đăng vào 5 ngày trước

• 2 phút đọc

Giới thiệu

Bạn có bao giờ tự hỏi làm thế nào mà máy tính có thể phân biệt được một file là ảnh hay văn bản? Có vẻ như câu hỏi này rất đơn giản khi mà mỗi file đều có đuôi mở rộng (extension), nhưng thực tế không chỉ đơn giản như vậy.

Đuôi mở rộng không phải là quyết định cuối cùng

Đúng vậy, một file có thể không có đuôi mở rộng hoặc thậm chí đã được chỉnh sửa đuôi mà vẫn chưa thể nhận dạng chính xác. Điều này trở nên khó khăn hơn khi:

  • Người dùng có thể vô tình tải lên một file ảnh với đuôi .txt mà không thể mở ra.
  • Nếu file không có phần đuôi mở rộng, làm thế nào máy tính xác định được nó?
  • Khi người dùng thay đổi đuôi file ảnh thành .txt thì chuyện gì sẽ xảy ra?

Hệ điều hành và vai trò của đuôi mở rộng

Có hai loại hệ điều hành chủ yếu mà chúng ta cần cân nhắc:

  1. Hệ điều hành như Linux: Không quan tâm đến đuôi mở rộng và thực thi file dựa vào nội dung và header.
  2. Hệ điều hành như Windows: Rất chú trọng đến đuôi mở rộng, sử dụng file association để mở file bằng ứng dụng tương ứng.

Magic Number: Bước đầu tiên trong việc xác định loại file

Khi máy tính mở một file, nó sẽ đọc nội dung nhị phân của file đó. Phần đầu của một file thường chứa chuỗi byte đặc biệt gọi là Magic Number giúp xác định loại file. Ví dụ:

  • PNG: 89 50 4E 47 0D 0A 1A 0A
  • JPEG: FF D8 FF
  • PDF: 25 50 44 46
  • ZIP: 50 4B 03 04

Cùng với đó, metadata của file có thể mang lại nhiều thông tin khác nữa về loại file.

MIME type: Định danh cho file

MIME type (Multipurpose Internet Mail Extensions) là chuẩn để định dạng một file bao gồm loại (type) và kiểu con (subtype). Ví dụ:

  • image/png: Hình ảnh định dạng PNG
  • text/plain: Văn bản thuần túy
  • application/pdf: Tài liệu PDF

Khi mở file, hệ điều hành sẽ kiểm tra MIME type để tìm ứng dụng phù hợp. Tương tự, trình duyệt sẽ dùng MIME type để xử lý file khi tải xuống.

Cách xác thực file: Sự kết hợp của nhiều yếu tố

Việc xác thực loại file là một quy trình phức tạp. Một số cách để kiểm tra bao gồm:

  • Kiểm tra đuôi mở rộng: Tuy nhiên, cách này dễ bị bỏ qua.
  • Kiểm tra MIME type: Hơi tin cậy nhưng vẫn có thể bị thao tác.
  • Kiểm tra magic number: So sánh với danh sách đáng tin cậy để xác định chính xác loại file.
  • Quét nội dung file: Sử dụng phần mềm antivirus để đảm bảo tính an toàn cho file.

Kết luận

Như vậy, việc phân biệt file không chỉ phụ thuộc vào đuôi mở rộng mà còn dựa vào nhiều yếu tố khác nhau như hệ điều hành, magic number và MIME type. Hiểu biết về những yếu tố này giúp bạn xử lý file một cách chính xác và an toàn hơn. Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại để lại bình luận!

Nguồn tham khảo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào