Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Lập trình Web & Backend] Nhận dạng loại file từ magic bytes

    Nhận dạng loại file từ magic bytes

    Không thể tin tưởng phần mở rộng do client gửi. Cách an toàn hơn là đọc magic bytes (vài byte đầu file) để xác định loại thật.

    Cho chuỗi hex của các byte đầu file (mỗi byte là 2 ký tự hex, không phân biệt hoa thường, không dấu cách). Xác định loại file theo bảng signature:

    Signature (hex đầu) Loại
    FFD8FF JPEG
    89504E47 PNG
    47494638 GIF
    25504446 PDF
    504B0304 ZIP

    Kiểm tra theo prefix: nếu chuỗi hex bắt đầu bằng signature thì khớp. In tên loại; nếu không khớp signature nào, in UNKNOWN.

    Ví dụ I/O

    • Input: 89504E470D0A1A0A → Output: PNG
    • Định dạng đầu vào:

      Một dòng: chuỗi hex các byte đầu file.

    • Ràng buộc đầu vào:

      Chuỗi hex dài tối đa 64 ký tự.

    • Định dạng đầu ra:

      Một dòng: tên loại file hoặc UNKNOWN.

    Ví dụ:

    Đầu vào:

    89504E470D0A1A0A
    

    Đầu ra:

    PNG

    Giải thích:

    Chuỗi bắt đầu bằng 89504E47 nên là PNG.

    Đang tải editor...