Trình kiểm tra hash tệp
Điều này có thể so sánh với "sự biến đổi của kỳ vọng" bên dưới; thuật toán cần được xem xét lại.
Tính giá trị hash MD5, SHA-1, SHA-256, SHA-512 cho tệp cục bộ ngay trong trình duyệt, sao chép một cú nhấp hoặc dán giá trị kỳ vọng chính thức để tự động so sánh, phù hợp để xác minh tải về, so sánh phiên bản và thu thập bằng chứng điện tử.
Đề xuất Liên quan
Hash tệp là gì?
Hash tệp (File Hash) là dấu vân tay kỹ thuật số ánh xạ nội dung của một tệp bất kỳ thành chuỗi có độ dài cố định thông qua thuật toán hash. Cùng một tệp mỗi lần tính đều cho kết quả giống nhau, và bất kỳ thay đổi nào về nội dung đều khiến giá trị hash hoàn toàn khác.
Các công dụng điển hình: ①Sau khi tải về, so sánh hash chính thức để xác nhận tệp không bị chỉnh sửa; ②Quản lý phiên bản — Git / SVN dùng SHA-1 để định danh mỗi lần commit; ③So sánh tệp — nhanh chóng xác định hai tệp có giống nhau không; ④Điều tra số — dùng hash tệp làm bằng chứng toàn vẹn cho bằng chứng điện tử.
Các thuật toán được công cụ này hỗ trợ: MD5 (128 bit, đã không còn chống xung đột), SHA-1 (160 bit, đã bị Google công khai tạo xung đột), SHA-256 (256 bit, đang được khuyến nghị chính), họ SHA-512 (512 bit / SHA-384 / SHA-512/256, an toàn hơn). Hash khác với mã hóa: hash là một chiều, không thể suy ngược nội dung tệp từ giá trị hash.
Trường hợp sử dụng
- Sau khi tải về phần mềm, ảnh ISO, firmware, so sánh hash MD5 / SHA-256 do trang chính thức công bố để xác nhận tệp không bị cài cắm cửa hậu hoặc hỏng trong quá trình truyền.
- Trước khi gửi tệp lớn cho đồng nghiệp, hãy tính sẵn hash để họ tính lại và so sánh sau khi nhận, đảm bảo quá trình truyền không bị lỗi.
- Tạo hash SHA-256 cho các bằng chứng điện tử như hợp đồng, báo giá, bản scan để lưu trữ, làm cơ sở chứng minh "chưa bị chỉnh sửa" về sau.
- So sánh hai phiên bản của cùng một tài liệu (trước / sau khi sửa), trước tiên dùng hash xác nhận chúng có hoàn toàn giống nhau không, rồi mới quyết định có phát hành lại hay không.
- Kiểm tra đồng bộ giữa các kho Git, gói sao lưu hoặc nút phản chiếu: chỉ cần tính một lượt SHA-256 là nhanh chóng biết các nút có đồng bộ không.
Cách Sử dụng
- Nhấp vào vùng tải lên, chọn một tệp cục bộ bất kỳ (mỗi lần xử lý một tệp).
- Công cụ tự động bắt đầu tính hash, thanh tiến trình sẽ hiển thị phần trăm theo thời gian thực, tệp càng lớn thời gian chờ càng lâu.
- Xem kết quả hash ở bên phải, chuyển đổi thuật toán, chữ hoa / chữ thường hoặc biến thể phân nhánh của họ SHA-512 theo nhu cầu.
- Dán giá trị kỳ vọng do bên chính thức hoặc đối phương cung cấp vào ô "giá trị kỳ vọng", công cụ sẽ lập tức hiển thị khớp hoặc không khớp.
- Nhấn nút "Sao chép hash" để lưu kết quả vào bộ nhớ tạm, hoặc nhấn "Tính lại" để làm mới tệp hiện tại.
Tính năng
- Tính toán cục bộ bảo vệ quyền riêng tư: mọi phép tính hash đều được thực hiện trong trình duyệt hiện tại, tệp không được tải lên máy chủ.
- Bốn thuật toán chính: MD5, SHA-1, SHA-256, SHA-512, bao phủ hầu hết các tình huống xác minh tải về và dấu vân tay tệp.
- Phân nhánh họ SHA-512: có thể chuyển đổi giữa SHA-512, SHA-384, SHA-512/256 để khớp với các giá trị kỳ vọng có độ dài khác nhau.
- Chuyển đổi chữ hoa / chữ thường một cú nhấp: mặc định xuất chữ thường, khi so sánh với công cụ Windows hoặc hash chính thức viết hoa chỉ cần tích chọn.
- Dán giá trị kỳ vọng tự động so sánh: dán hash do bên chính thức cung cấp vào ô "giá trị kỳ vọng", lập tức hiển thị kết quả khớp hoặc không khớp.
- Thanh tiến trình thời gian thực: đọc và tính theo khối với tệp lớn, phần trăm cập nhật liên tục, không làm treo trình duyệt.
- Sao chép giá trị hash một cú nhấp: sau khi tính xong nhấn nút sao chép, kết quả vào thẳng bộ nhớ tạm để dán lại vào bảng kiểm tra hoặc cửa sổ chat.
Best Practices
Ưu tiên dùng SHA-256 để xác minh tệp tải về
Phần mềm hiện đại, bản phân phối Linux, ảnh container do trang chính thức công bố hầu như đều cung cấp SHA-256. MD5 chỉ nên dùng khi trang chính thức ghi rõ MD5 và bạn xác nhận được nguồn đáng tin, tránh gánh chịu rủi ro không cần thiết do điểm yếu của thuật toán.
Bỏ qua chữ hoa/thường khi so sánh
Bản thân thuật toán hash không phân biệt chữ hoa/thường, công cụ mặc định xuất chữ thường, nhưng dòng lệnh Linux / macOS thường là chữ thường, công cụ kiểm tra của Windows đôi khi hiển thị chữ hoa. Khi thấy không khớp, hãy xem có phải chỉ khác chữ hoa/thường không, tránh nhầm lẫn là tệp bị hỏng.
Giá trị hash phải bao gồm toàn bộ nội dung tệp
Gói nén, lưu trữ nhiều tệp, ảnh ISO phải được tính hash ở trạng thái "nguyên vẹn". Nếu giải nén trước rồi mới hash, chỉ có thể chứng minh "nội dung đã giải nén" là đúng, không thể chứng minh bản thân gói nén không có vấn đề.
Tình huống bằng chứng điện tử nên lưu cả hash và chữ ký
Hash SHA-256 chỉ chứng minh được "tính toàn vẹn của tệp", không chứng minh được "ai là người gửi". Khi cần dùng làm bằng chứng điện tử ra bên ngoài, tốt nhất ngoài hash còn nên xếp chồng thêm chữ ký số của người gửi hoặc dấu thời gian từ bên thứ ba đáng tin, chỉ hash đơn thuần không đủ tạo thành chuỗi bằng chứng hoàn chỉnh.
Tệp cực lớn hoặc thiết bị không đủ mạnh nên đổi công cụ
Công cụ này phù hợp với các tệp thông thường dưới mức GB. Với tệp cực lớn hoặc thiết bị cũ, tính toán theo khối sẽ rất chậm, lúc này phù hợp hơn là dùng openssl dgst, certutil hoặc sha256sum có sẵn trong hệ thống ở dòng lệnh để xử lý nhanh.
Khi cần xác minh toàn vẹn có khóa nên dùng HMAC
Hash tệp chỉ xác minh tính toàn vẹn nội dung, không xác minh danh tính người gửi. Nếu bạn cần xác nhận "tệp này đến từ nguồn tôi tin tưởng và chưa bị chỉnh sửa", hãy dùng trình tạo HMAC kết hợp khóa chia sẻ để tạo chuỗi hash, thay vì hash tệp thông thường.
Câu hỏi Thường gặp
Chọn MD5 hay SHA-256?
Xác minh tải về thường ngày, so sánh phiên bản, loại bỏ trùng lặp tệp thì dùng SHA-256 ổn định hơn. MD5 chỉ nên dùng khi đối phương chỉ cung cấp MD5, hoặc bạn xác nhận tình huống không liên quan đến bảo mật (ví dụ loại bỏ trùng lặp cục bộ). Các tình huống nhạy cảm về bảo mật (bằng chứng điện tử, xác minh firmware) hãy kiên trì dùng SHA-256 trở lên.
Chữ hoa/thường khác nhau có tính là kiểm tra thất bại không?
Không tính. Bản thân thuật toán hash không có khái niệm chữ hoa/thường, chỉ là cách hiển thị khác nhau. Công cụ mặc định xuất chữ thường, khi gặp giá trị kỳ vọng viết hoa hãy tích chọn "Xuất chữ hoa" rồi tính lại. Khi so sánh hãy bỏ qua chữ hoa/thường, chỉ xem các ký tự có hoàn toàn giống nhau không.
Tại sao giá trị hash của tôi không khớp với công bố chính thức?
Nguyên nhân thường gặp: ①Tệp bị hỏng trong quá trình tải về, hãy tải lại; ②Phiên bản bạn tải không khớp với phiên bản mà trang chính thức cung cấp hash (đối chiếu số phiên bản, tên tệp, mã phân cuốn); ③Bạn chỉ tính một phần nội dung của gói nén; ④Bên chính thức công bố thuật toán khác (ví dụ bạn dùng MD5, đối phương công bố SHA-256).
Công cụ này có hỗ trợ SHA-224, BLAKE2, SM3 không?
Hiện tại hỗ trợ MD5, SHA-1, SHA-256, và họ SHA-512 (SHA-512, SHA-384, SHA-512/256). Tạm thời chưa hỗ trợ SHA-224, BLAKE2, SM3, v.v. Nếu bạn cần các thuật toán này, nên chuyển sang dùng công cụ dòng lệnh cục bộ (openssl, sha256sum, v.v.).
Tệp có được tải lên máy chủ không? Có an toàn không?
Không. Công cụ này dùng crypto-js để tính hash theo khối ngay trong trình duyệt, nội dung tệp luôn nằm trong thiết bị và bộ nhớ trình duyệt của bạn, không gửi đến bất kỳ máy chủ từ xa nào. Xử lý tài liệu nhạy cảm, hợp đồng, firmware đều có thể yên tâm sử dụng.
Một lần có thể tính nhiều tệp không?
Trang hiện tại xử lý một tệp mỗi lần. Nếu cần kiểm tra hàng loạt, có thể lặp lại thao tác, hoặc chuyển sang dùng công cụ dòng lệnh cục bộ (certutil -hashfile trên Windows, md5sum / shasum trên macOS / Linux) để liệt kê hash của nhiều tệp cùng lúc.
Nên chọn SHA-512 hay SHA-384?
Khi đối phương cung cấp rõ SHA-384 thì chọn SHA-384; các tình huống khác cần "an toàn hơn" mặc định chọn SHA-512. SHA-512/256 có độ dài đầu ra giống SHA-256 (64 ký tự), nhưng bên trong dùng hàm nén SHA-512, phù hợp để có khả năng chống xung đột mạnh hơn trong các hệ thống giới hạn độ dài đầu ra.
Hash và chữ ký số khác nhau như thế nào?
Hash chỉ xác minh "nội dung tệp có toàn vẹn không", không chứng minh được "ai là người gửi". Chữ ký số = hash + mã hóa bằng khóa riêng của người gửi, bên xác minh dùng khóa công khai giải mã là có thể đồng thời xác minh tính toàn vẹn và danh tính người gửi. Khi cần chứng minh nguồn gốc, nên làm thêm một lần xác minh chữ ký ngoài hash.
Hash tệp lớn có làm treo trình duyệt không?
Công cụ này dùng đọc luồng theo khối 2MB, các tệp phổ biến vài chục MB đến vài trăm MB đều xử lý bình thường. Với tệp trên cấp GB hoặc thiết bị yếu, thời gian tính sẽ tăng rõ rệt; nếu bạn chỉ cần kiểm tra tệp lớn dạng này ở dòng lệnh, nên chuyển sang dùng công cụ có sẵn trong hệ thống hoặc openssl.
Xử lý sự cố
Giá trị hash không khớp với công bố chính thức
Trước tiên xác nhận bạn đã tải đúng phiên bản mà trang chính thức cung cấp hash (tên tệp, số phiên bản, mã phân cuốn đều phải đối chiếu), rồi kiểm tra chữ hoa/thường có khớp không, có tính trên toàn bộ tệp không. Nếu tất cả đều khớp mà vẫn không trùng, hãy tải lại một lần, có thể tệp đã bị hỏng trong quá trình tải về.
Tệp lớn tính rất chậm
Công cụ này dùng tính toán luồng theo khối 2MB cho tệp lớn. Thường vài trăm MB trở xuống hoàn thành trong vài giây. Trên cấp GB nên chuyển sang dòng lệnh: trên Windows dùng certutil -hashfile <tên_tệp> SHA256, trên macOS / Linux dùng shasum -a 256 <tên_tệp>.
Tích chọn chữ hoa thì giá trị hash thay đổi
Bản thân giá trị hash không thay đổi, chỉ là các chữ cái được chuyển sang chữ hoa. Khi so sánh hãy bỏ qua chữ hoa/thường, hoặc thống nhất giá trị kỳ vọng về cùng một dạng rồi hãy so sánh.
Sau khi đổi thuật toán kết quả không làm mới
Sau khi chuyển đổi thuật toán hoặc chữ hoa / chữ thường, công cụ sẽ tự động tính lại tệp hiện tại. Nếu không làm mới, hãy nhấn nút "Tính lại" để ép buộc tính lại một lần.
Thuật ngữ
- MD5
- Thuật toán hash cho đầu ra 128 bit (32 ký tự thập lục phân). Tốc độ nhanh nhưng đã không còn chống xung đột (bị phá bởi nhóm Wang Xiaoyun năm 2004), phù hợp làm dấu vân tay tệp hoặc loại bỏ trùng lặp, không nên dùng trong các tình huống nhạy cảm về bảo mật.
- SHA-1
- Đầu ra 160 bit (40 ký tự thập lục phân). Năm 2017 Google công khai xung đột SHA-1, các trình duyệt và hệ thống chính đã ngừng khuyến nghị sử dụng, nhưng lịch sử Git cũ vẫn phụ thuộc vào nó.
- SHA-256
- Thành viên của họ SHA-2, cho đầu ra 256 bit (64 ký tự thập lục phân). Hiện là thuật toán được khuyến nghị chính, được dùng trong HTTPS, Bitcoin, các kho Git mới, v.v.
- SHA-512
- Đầu ra 512 bit (128 ký tự thập lục phân), khả năng chống xung đột mạnh hơn SHA-256, chạy nhanh hơn một chút với tệp dài. Công cụ này đồng thời hỗ trợ SHA-384 (96 ký tự) và SHA-512/256 (64 ký tự, cùng độ dài với SHA-256 nhưng bên trong dùng hàm nén SHA-512).
- Thập lục phân (Hex)
- Dạng hiển thị phổ biến nhất của giá trị hash, gồm các ký tự 0-9 và a-f, mỗi byte chiếm 2 ký tự. Công cụ này hỗ trợ chuyển đổi chữ hoa hoặc chữ thường.
- Xung đột (Collision)
- Hai tệp khác nhau sinh ra giá trị hash hoàn toàn giống nhau. Khả năng chống xung đột là chỉ số cốt lõi để đo mức an toàn của thuật toán hash, MD5 và SHA-1 đã được chứng minh tồn tại xung đột thực tế.
- Tính toán cục bộ
- Mọi phép tính hash đều được thực hiện trong trình duyệt và bộ nhớ thiết bị hiện tại, nội dung tệp không được tải lên máy chủ từ xa, phù hợp để xác minh các tài liệu nhạy cảm.
So sánh các thuật toán được công cụ hỗ trợ
Khi chọn thuật toán, ưu tiên xem đối phương cung cấp loại hash nào và bạn có đang ở tình huống nhạy cảm về bảo mật không.
| Thuật toán | Độ dài đầu ra | Mức an toàn | Tình huống điển hình |
|---|---|---|---|
MD5 | 128 bit / 32 ký tự | Yếu (đã bị phá xung đột) | Loại bỏ trùng lặp cục bộ, tương thích phiên bản cũ |
SHA-1 | 160 bit / 40 ký tự | Yếu (đã bị phá xung đột) | Tương thích lịch sử Git |
SHA-256 | 256 bit / 64 ký tự | Mạnh | Xác minh tải về, firmware, bằng chứng (khuyến nghị) |
SHA-384 | 384 bit / 96 ký tự | Mạnh | Yêu cầu bảo mật cao, yêu cầu của giao thức |
SHA-512 | 512 bit / 128 ký tự | Mạnh hơn | Yêu cầu bảo mật cao |
SHA-512/256 | 256 bit / 64 ký tự | Mạnh | Cần độ dài SHA-256 nhưng muốn dùng lõi SHA-512 |
Khuyến nghị thuật toán cho các tình huống khác nhau
Cùng một tệp ở các tình huống sử dụng khác nhau, thuật toán phù hợp nhất cũng không giống nhau.
| Tình huống sử dụng | Thuật toán khuyến nghị | Giá trị cốt lõi |
|---|---|---|
| Xác minh tải về phần mềm / ảnh ISO / firmware | SHA-256 | Phổ biến, trang chính thức hỗ trợ rộng |
| Dấu vân tay commit Git | SHA-1 | Tương thích với lịch sử |
| Loại bỏ trùng lặp tệp cục bộ | MD5 | Tốc độ nhanh, rủi ro thấp |
| Thu thập bằng chứng điện tử | SHA-256 + chữ ký | Hash cộng chữ ký, vững hơn về mặt tư pháp |
| Đối chiếu tính nhất quán khi truyền | SHA-256 | Cả hai bên đều tính được, so sánh đơn giản |
| Cần độ dài quy định bởi giao thức | SHA-384 / SHA-512/256 | Thỏa mãn ràng buộc của giao thức |
Authoritative References
- So sánh chuỗi bảo mật
- Chuyển Đổi Nhị Phân
- Mật Mã Caesar
- Mã Morse
- Chuyển Đổi Hex
- Video sang Base64
- Base64 Sang Video
- Ảnh sang Base64
- Base64 sang ảnh
- Văn bản sang Base64
- Base64 Sang Văn Bản
- Trình kiểm tra hash tệp
- Tệp Sang Base64
- Base64 Sang Tệp
- Chuyển đổi Âm thanh sang Base64
- Base64 sang Âm thanh
- Mã hóa và giải mã AES
- Mã Hóa Giải Mã DES
- Bộ Mã Hóa Giải Mã Base32
- Base58 mã hóa và giải mã
- Mã hóa Base64
- Giải mã Base64
- So sánh Base64
- Chia Base64
- Base64 gộp nhiều dòng
- Định dạng Base64
- Kiểm Tra Định Dạng Base64
- Mã hóa Base64 hàng loạt
- Giải mã Base64 Hàng loạt
- Dọn dẹp Base64
- Xử lý padding Base64
- Thống Kê Độ Dài Base64
- Base64 Sang Hex
- Chuyển đổi Base64 DataURL
- Công cụ chuyển đổi Base64-Hex
- Bộ Mã Hóa Base85
- Tạo & Xác minh HMAC
- PBKDF2 Phái sinh khóa
- Băm MD5
- Hash SHA-256
- Băm SHA1
- Băm SHA512
- Công cụ JWT
- Mã hóa và giải mã HTML
- Escape Unicode
- Mã hóa URL
- URL Safe Base64
- MIME Base64
- Làm rối Java
- Làm rối JS
- Làm rối PHP
- Làm rối Python