Từ điển

ZIP CRC là gì?

CRC, hay ZIP CRC, là một giá trị metadata mà bạn thường thấy trong các tệp lưu trữ. Tìm hiểu thêm về CRC là gì và giá trị này cho bạn biết điều gì về chính tệp của bạn.

zip-crc

CRC là một số ngắn được tính từ nội dung của tệp tại thời điểm nó được thêm vào một gói nén. Nó hoạt động như một dấu vân tay, để sau này có thể kiểm tra xem tệp lấy ra từ gói nén có chính xác như lúc được đưa vào hay không. CRC là viết tắt của cyclic redundancy check (kiểm tra dư thừa tuần hoàn).

Nó xuất phát từ đâu và những tệp nào có nó

Các tệp lưu trữ có chứa nó. Điều đó có nghĩa là các tệp ZIP và nhiều định dạng được xây dựng trên ZIP, bao gồm .docx, .xlsx, .epub, .jar và .apk, trong khi RAR, 7z và các định dạng khác lại giữ checksum riêng của chúng. Một báo cáo có thể không liệt kê nó cho các tệp .epub, dù bản thân tệp vẫn lưu trữ giá trị này.

Chương trình nén tính giá trị này dựa trên nội dung gốc, chưa nén của tệp và lưu nó cùng với mục tương ứng, nên mỗi thành phần trong một gói nén đều có CRC riêng. Bạn không thể chọn hay nhập nó, và nó không chứa thông tin về bạn hoặc máy tính của bạn. Nó được suy ra hoàn toàn từ các byte của tệp.

Mục đích của việc lưu trữ giá trị đó là để so sánh về sau. Khi gói nén được giải nén, chương trình tính lại CRC từ nội dung vừa trích xuất và so sánh hai giá trị. Nếu chúng khác nhau, bạn sẽ thấy thông báo lỗi CRC quen thuộc trong WinZip, 7-Zip hoặc unzip, nghĩa là tệp đã giải nén không trùng với tệp ban đầu được thêm vào. Điều đó cho thấy đã có hỏng hóc ở đâu đó: tải xuống bị gián đoạn, ổ đĩa lỗi, bản sao bị cắt ngắn. Chỉ cần một thành phần bị lỗi là đủ để xuất hiện thông báo, ngay cả khi mọi thứ khác trong gói nén vẫn ổn.

Giá trị trông như thế nào

ZIP dùng một biến thể gọi là CRC-32, tạo ra một số 32 bit. Nó thường được hiển thị dưới dạng tám chữ số thập lục phân, ví dụ 0x8f3d2b1c, và một số ứng dụng sẽ in chính giá trị đó dưới dạng một số thập phân dài. Không có đơn vị, cũng không có thang đo giá trị nào là tốt hơn hay xấu hơn. Một tệp trống và một mục thư mục không chứa dữ liệu sẽ hiển thị 0x00000000.

Tại sao nó quan trọng

Đây là một trường kiểm tra toàn vẹn, và là bằng chứng tích hợp sẵn của gói nén cho thấy nội dung đã được bảo toàn qua quá trình lưu trữ và truyền tải. Việc nhìn thấy CRC trong báo cáo metadata không có nghĩa là gói nén của bạn có vấn đề. Đó chỉ là giá trị được ghi lại khi gói nén được tạo; việc kiểm tra thực sự diễn ra khi bạn giải nén, không phải khi bạn chỉ xem.

Nó còn có một công dụng phụ tiện lợi. Nội dung giống hệt nhau luôn cho ra cùng một CRC, nên hai mục có CRC và kích thước giống nhau gần như chắc chắn là cùng một tệp, giúp bạn nhanh chóng phát hiện tệp trùng lặp trong một gói nén lớn.

Điều mà nó không phải là: một tính năng bảo mật. CRC được thiết kế để phát hiện hỏng hóc ngẫu nhiên, và nó đủ ngắn để có thể cố ý sắp xếp cho trùng giá trị, nên một CRC hợp lệ không chứng minh được rằng tệp chưa từng bị chỉnh sửa. Các hàm băm mật mã như SHA-256 mới được dùng cho mục đích đó. Vì giá trị được suy ra từ nội dung, nó cũng có thể được dùng để xác định liệu hai gói nén khác nhau có chứa cùng một tệp hay không, đôi khi khá hữu ích và đáng ghi nhớ trước khi bạn chia sẻ một gói nén.

Meta Keys