Tính hash tệp hàng loạt — checksum cho nhiều tệp cùng lúc, xác minh theo manifest
Bộ tính hash và xác minh manifest hàng loạt
Chọn hoặc thả nhiều tệp cùng lúc và trang này sẽ tính digest MD5, SHA-1, SHA-256, SHA-384 hoặc SHA-512 cho từng tệp, hoàn toàn bên trong trình duyệt của bạn. Sau đó hãy sao chép kết quả thành các dòng tương thích sha256sum cho ghi chú phát hành của riêng bạn, hoặc dán một manifest checksum (SHA256SUMS, .sha256, .sfv, đầu ra BSD openssl dgst) và để trang cho bạn biết tệp nào đã xác minh, tệp nào không khớp và tệp nào thiếu. Không có gì được tải lên đâu cả. Để tính cho một tệp đơn với nhiều thuật toán hơn, xem Công cụ tạo hash.
1. Chọn tệp
Thả tệp vào đây, hoặc nhấn để chọn Tối đa 50 tệp, mỗi tệp 200 MB. Các tệp vẫn ở trên máy này.
Chưa chọn tệp nào.
2. Thuật toán
— đầu ra hex; hãy chọn ít nhất một.
3. Kết quả
Nhấn vào ô digest bất kỳ để sao chép. Tên và kích thước luôn được liệt kê, nên bảng này cũng là chế độ xem kích thước tệp theo lô.
Bảng digest sẽ hiển thị ở đây khi bạn chọn tệp và nhấn Tính.
4. Xác minh theo manifest (tùy chọn)
Dán manifest theo kiểu GNU (hash tên), BSD (SHA256 (tên) = hash), SFV (tên crc32) hoặc plain (sha256=hash), hoặc tải lên chính tệp .sha256 / SHA256SUMS / .sfv. Các dòng bắt đầu bằng ; được coi là chú thích.
Quyền riêng tư: mọi digest được tính bằng JavaScript và công cụ WebCrypto của chính trình duyệt — các tệp không bao giờ rời khỏi tab này. Mẹo: sau khi xác minh một bản tải, có thể đóng trang này an toàn; không có gì được lưu.
Tính hash tệp hàng loạt là gì?
Checksum là dấu vân tay ngắn của một tệp: đưa các byte của tệp qua một hàm băm, bạn nhận được một digest gần như chắc chắn thay đổi khi chỉ một byte của tệp thay đổi. Nhà phân phối phần mềm công bố các digest này bên cạnh tệp tải xuống để bạn chứng minh được tệp mình nhận đúng là tệp họ gửi — bản tải không bị cắt cụt hay hỏng, và không ai thay nội dung khác vào.
Kiểm tra từng tệp một thì ổn với một lần tải. Khi bạn có một thư mục tệp, hoặc một bản phát hành có manifest SHA256SUMS bên trong, bạn cần phiên bản hàng loạt: băm mọi tệp một lần, rồi đối chiếu từng dòng của manifest với tệp tương ứng. Đây chính xác là vòng lặp mà trang này tự động hóa.
Các định dạng manifest mà trang này đọc được
Kiểu
Dòng ví dụ
Nơi bạn gặp
GNU
900150983c... hello.txt
Đầu ra của sha256sum / md5sum, tệp SHA256SUMS trong các bản phát hành Linux
BSD
SHA256 (hello.txt) = 900150983c...
openssl dgst -sha256 trên macOS/BSD
SFV
hello.txt 1A2B3C4D
Tệp Simple File Verification, nhóm tin nhị phân cũ
plain
sha256=ba7816bf...
Trang tải xuống, ghi chú phát hành, Docker checksums
Độ dài của hash tự nó cho biết thuật toán: 32 ký tự thập lục phân là MD5, 40 là SHA-1, 64 là SHA-256, 96 là SHA-384 và 128 là SHA-512 — vì vậy các dòng theo định dạng GNU không cần ghi rõ chương trình nào đã tạo ra chúng.
Cách hoạt động, tóm tắt
Mỗi tệp được đọc một lần bằng FileReader của trình duyệt và đưa vào crypto.subtle.digest (họ SHA) cùng một triển khai MD5 cục bộ. Các digest được mã hóa thập lục phân và xếp thẳng hàng với các mục trong manifest; một tệp được xác minh chỉ khi digest tính được bằng đúng digest kỳ vọng, từng ký tự một. Các dòng SFV mang CRC-32 thay vì hash mật mã — trang đánh dấu chúng là không được hỗ trợ thay vì giả vờ rằng CRC là một digest.
Những lỗi thường gặp
“Tất cả tệp của tôi báo không khớp.” — nguyên nhân thường gặp là manifest được tạo cho một phiên bản khác của bản tải. Hãy kiểm tra tên tệp trước: bộ so khớp so sánh tên cơ sở, nên dist/app-1.2.bin khớp với dòng manifest app-1.2.bin. “SHA-1 đã xác minh, vậy tệp có an toàn không?” — không. Xác minh chỉ chứng minh các byte khớp với những gì nhà phát hành đã phát hành; việc nhà phát hành có đáng tin hay không là một câu hỏi khác. Và SHA-1 đã bị phá vỡ khả năng va chạm từ năm 2017, nên hãy ưu tiên manifest SHA-256 khi có lựa chọn.
Câu hỏi thường gặp
Băm một tệp lớn có chậm không? — khoảng một giây cho mỗi 200 MB trên máy thông thường; một dòng tiến trình cho biết lô đã chạy được bao xa. Tôi có thể xác minh manifest CRC-32 SFV không? — các dòng SFV được phân tích và liệt kê, nhưng trang này không tính CRC-32; hãy dùng công cụ CRC trên trung tâm mật mã cho từng tệp đơn lẻ. Vì sao chỉ hex? — các manifest trong thực tế đều là hex; digest base64 là một tính năng riêng. Tệp của tôi có bị xử lý gì không? — không: không máy chủ, không lưu trữ, không phân tích; đóng tab thì mọi byte đầu vào biến mất.