Kiểm tra hash của file tải về: tính SHA-1, SHA-256 và đối chiếu với giá trị công bố
Công cụ tính giá trị băm SHA-1 và SHA-256 cho một tệp trên máy bạn, rồi so trực tiếp với chuỗi bạn dán vào để biết tệp có đúng bản gốc hay không. Tệp được đọc bằng trình duyệt và băm bằng thư viện mã hóa sẵn có, không có bước tải lên nên tệp không rời khỏi máy.
Tính năng nổi bật
- Kéo thả tệp vào khung hoặc bấm chọn tệp, nhận mọi định dạng chứ không giới hạn loại
- Tính đồng thời SHA-1 và SHA-256 bằng thư viện mã hóa sẵn có của trình duyệt
- Hiện tên tệp và dung lượng theo kilobyte để bạn đối chiếu với thông tin nơi tải về
- Ô so sánh nhận chuỗi băm bạn dán vào và đối chiếu với cả hai thuật toán cùng lúc
- Tự bỏ qua khoảng trắng thừa và không phân biệt chữ hoa chữ thường khi so sánh
- Kết luận khớp hay không khớp hiển thị bằng khối màu rõ ràng ngay dưới ô so sánh
- Nút sao chép riêng cho từng giá trị băm để dán vào tài liệu hoặc phiếu báo lỗi
- Tệp được đọc và băm ngay trong trình duyệt, không tải lên bất kỳ máy chủ nào
Giá trị băm trả lời câu hỏi tệp này có đúng bản gốc không
Khi tải một bộ cài đặt, một bản sao lưu hay một tệp do đối tác gửi, có hai rủi ro khác nhau. Rủi ro thứ nhất là tệp hỏng dọc đường, do đứt kết nối giữa chừng, do ổ đĩa lỗi, hoặc do quá trình sao chép qua nhiều bước bị cắt cụt; tệp hỏng thường vẫn mở được một phần nên bạn chỉ phát hiện khi cài xong và phần mềm chạy lỗi lung tung. Rủi ro thứ hai nghiêm trọng hơn là tệp bị thay bằng bản khác, chẳng hạn bạn tải từ một trang trung gian thay vì trang chính thức. Giá trị băm xử lý được cả hai: đổi một byte duy nhất trong tệp là giá trị băm đổi hoàn toàn, không có chuyện gần giống. So chuỗi băm bạn tính được với chuỗi mà nơi phát hành công bố là cách kiểm tra nhanh và dứt khoát, mất chừng mười giây với tệp vài trăm megabyte.
Lợi ích khi sử dụng
- Phát hiện tệp tải về bị hỏng trước khi mất thời gian cài đặt hoặc giải nén
- Xác nhận tệp đúng bản gốc khi tải từ trang gương hoặc nhận qua kênh trung gian
- So sánh không cần đọc từng ký tự vì công cụ tự đối chiếu và kết luận
- Đối chiếu được cả hai thuật toán trong một lần dán, không cần biết trước bên kia dùng loại nào
- Tệp nhạy cảm vẫn an toàn vì không có bước tải lên máy chủ
Cách đối chiếu hash của một tệp
- 1Tìm giá trị băm mà nơi phát hành công bố, thường nằm ngay cạnh nút tải hoặc trong một tệp riêng có tên chứa chữ checksum.
- 2Kéo thả tệp đã tải về vào khung nét đứt, hoặc bấm vào khung để mở hộp thoại chọn tệp.
- 3Chờ dòng đang tính hash chạy xong, thời gian phụ thuộc dung lượng tệp và tốc độ máy.
- 4Dán chuỗi băm đã công bố vào ô so sánh, công cụ tự đối chiếu với cả SHA-1 lẫn SHA-256.
- 5Đọc kết luận: khối màu xanh là khớp và tệp nguyên vẹn, khối màu đỏ là không khớp và bạn nên tải lại từ nguồn chính thức.
Vì sao công cụ không tính MD5
Bảng kết quả chỉ có SHA-1 và SHA-256, và đây là lựa chọn có lý do kỹ thuật rõ ràng. Thư viện mã hóa sẵn có trong trình duyệt cố tình không hỗ trợ MD5 vì thuật toán này đã bị coi là không còn an toàn, nên muốn tính MD5 cho một tệp thì phải nạp thêm một thư viện riêng và đọc toàn bộ tệp qua đoạn mã JavaScript, cách này chậm hơn nhiều lần với tệp lớn. Về mặt thực dụng, MD5 vẫn xuất hiện trong nhiều trang tải phần mềm cũ, và nếu nơi phát hành chỉ công bố MD5 thì bạn không đối chiếu được ở đây; khi đó hãy dùng lệnh tính băm có sẵn trong hệ điều hành hoặc một công cụ trên máy. Cần nói thêm để bạn hiểu đúng mức độ: MD5 vẫn đủ dùng để phát hiện tệp hỏng do lỗi truyền, vì lỗi ngẫu nhiên gần như không bao giờ tạo ra va chạm. Nó chỉ không đủ khi có kẻ cố tình dựng một tệp khác có cùng giá trị băm, và tình huống đó là thật chứ không phải giả định lý thuyết. SHA-256 không có điểm yếu đó nên nếu nơi phát hành công bố cả hai, hãy luôn dùng SHA-256.
SHA-1 vẫn hiển thị, dùng nó thế nào cho đúng
SHA-1 đã bị chứng minh có thể tạo va chạm với chi phí tính toán trong tầm với, nên nó không còn được coi là an toàn cho mục đích chống giả mạo, và các trình duyệt đã ngừng chấp nhận chứng thư số ký bằng SHA-1 từ nhiều năm trước. Tuy vậy nó vẫn có mặt trong công cụ vì hai lý do thực tế. Thứ nhất, rất nhiều trang tải phần mềm và kho mã nguồn vẫn công bố SHA-1, và việc đối chiếu được với con số họ đưa ra vẫn tốt hơn là không đối chiếu gì. Thứ hai, hệ thống quản lý phiên bản Git dùng SHA-1 để định danh phiên bản, nên có lúc bạn cần con số này để đối chiếu. Nguyên tắc chọn rất đơn giản: nếu nơi phát hành công bố SHA-256 thì dùng SHA-256; nếu chỉ có SHA-1 thì dùng SHA-1 nhưng nên xác minh thêm bằng cách khác, chẳng hạn kiểm tra chữ ký số của bộ cài hoặc tải lại từ đúng tên miền chính thức thay vì từ trang tổng hợp. Đừng coi kết quả khớp SHA-1 là bằng chứng tuyệt đối rằng tệp không bị thay.
Tìm giá trị băm công bố ở đâu và tin ở mức nào
Giá trị băm chỉ có ý nghĩa khi bạn lấy nó từ nguồn đáng tin. Nếu kẻ tấn công thay được tệp thì họ cũng thay luôn con số băm hiển thị cạnh nút tải, và bạn đối chiếu xong vẫn thấy khớp. Vì thế thứ tự ưu tiên nên là: trang chính thức của nơi phát hành với kết nối bảo mật, sau đó là kho mã nguồn chính chủ, rồi tới các kênh thông báo phát hành. Với những dự án làm cẩn thận, giá trị băm còn được đặt trong một tệp riêng và tệp đó được ký số bằng khóa của nhóm phát triển; đây là mức bảo đảm cao nhất vì kẻ tấn công không giả được chữ ký. Trường hợp bạn tải từ trang gương hoặc nhận tệp qua ổ đĩa từ đồng nghiệp thì cách làm đúng là lấy tệp ở đó nhưng lấy giá trị băm từ trang gốc. Còn nếu con số băm được gửi kèm trong cùng một thư điện tử với đường dẫn tải, hãy hiểu rằng nó chỉ chứng minh tệp không hỏng dọc đường, chứ không chứng minh được người gửi là ai.
Đọc kết quả khi hai chuỗi không khớp
Không khớp không phải lúc nào cũng nghĩa là tệp bị can thiệp. Danh sách nguyên nhân theo thứ tự khả năng xảy ra. Thứ nhất, bạn đang so nhầm thuật toán: chuỗi 40 ký tự là SHA-1 còn chuỗi 64 ký tự là SHA-256, nếu nơi phát hành công bố chuỗi 32 ký tự thì đó là MD5 và công cụ này không tính được. Thứ hai, bạn tải nhầm phiên bản, ví dụ bản dành cho kiến trúc chip khác hoặc bản cho hệ điều hành khác, chuyện này rất hay xảy ra ở các trang có nhiều biến thể. Thứ ba, tệp tải chưa xong hoặc bị ngắt giữa chừng, kiểm tra bằng cách so dung lượng hiển thị với dung lượng nơi phát hành ghi. Thứ tư, chuỗi bạn dán bị thiếu ký tự hoặc dính khoảng trắng lạ khi sao chép từ tài liệu. Thứ năm, tệp đã bị chương trình khác sửa sau khi tải, chẳng hạn một số phần mềm bảo mật thay đổi tệp nén khi quét. Chỉ khi đã loại trừ hết những khả năng trên thì mới nên nghĩ tới việc tệp bị thay, và khi đó việc cần làm là xóa tệp rồi tải lại trực tiếp từ tên miền chính thức.
Giới hạn khi băm tệp trong trình duyệt
Công cụ đọc toàn bộ tệp vào bộ nhớ dưới dạng một vùng dữ liệu liên tục rồi mới băm, nên dung lượng tệp bị giới hạn bởi bộ nhớ khả dụng của trình duyệt. Với tệp vài trăm megabyte thì thường vẫn chạy, nhưng tệp nhiều gigabyte như ảnh đĩa cài hệ điều hành có khả năng làm tab hết bộ nhớ và dừng đột ngột. Trong trường hợp đó, cách xử lý là dùng lệnh tính băm có sẵn trên hệ điều hành, mọi hệ điều hành phổ biến đều có công cụ dòng lệnh làm việc này và chúng đọc tệp theo từng khối nên không bị giới hạn bộ nhớ. Một giới hạn nữa là công cụ chỉ xử lý một tệp mỗi lần, chọn tệp mới sẽ thay kết quả cũ, nên nếu cần đối chiếu một bộ nhiều tệp thì bạn phải làm lần lượt và ghi lại kết quả. Cuối cùng, thời gian tính phụ thuộc tốc độ đọc ổ đĩa và tốc độ máy, tệp lớn có thể mất vài chục giây mà giao diện chỉ hiện vòng xoay, hãy chờ thay vì bấm lại.
Câu hỏi thường gặp (FAQ)
Vì sao công cụ không hiện giá trị MD5?
Vì thư viện mã hóa sẵn có của trình duyệt cố tình không hỗ trợ MD5 do thuật toán này không còn được coi là an toàn. Tính MD5 cho tệp lớn bằng JavaScript sẽ chậm hơn nhiều lần. Nếu nơi phát hành chỉ công bố MD5, bạn dùng lệnh tính băm có sẵn trong hệ điều hành.
SHA-1 hay SHA-256, nên dùng cái nào để đối chiếu?
Ưu tiên SHA-256 nếu nơi phát hành có công bố. SHA-1 đã bị chứng minh có thể tạo va chạm với chi phí trong tầm với nên không còn an toàn cho mục đích chống giả mạo. Chỉ dùng SHA-1 khi không có lựa chọn khác, và nên xác minh thêm bằng cách kiểm tra chữ ký số của bộ cài.
Nhìn độ dài chuỗi có biết đó là thuật toán nào không?
Có. Chuỗi 32 ký tự thập lục phân là MD5, 40 ký tự là SHA-1, 64 ký tự là SHA-256. Đây là cách nhanh nhất để biết bạn đang cầm chuỗi loại nào khi tài liệu không ghi rõ, và cũng giúp phát hiện ngay khi bạn so nhầm thuật toán.
Hash không khớp thì có nghĩa tệp bị nhiễm mã độc không?
Chưa chắc. Khả năng cao hơn là bạn so nhầm thuật toán, tải nhầm phiên bản dành cho kiến trúc hoặc hệ điều hành khác, tệp tải chưa xong, hoặc chuỗi dán vào bị thiếu ký tự. Chỉ khi đã loại hết những khả năng đó thì mới nên nghi tệp bị thay và tải lại từ tên miền chính thức.
Đổi tên tệp có làm thay đổi giá trị băm không?
Không. Giá trị băm chỉ phụ thuộc vào nội dung bên trong tệp, không phụ thuộc tên tệp, ngày sửa hay vị trí thư mục. Ngược lại, chỉ cần đổi một byte trong nội dung là giá trị băm đổi hoàn toàn, không có chuyện gần giống nhau.
Lấy giá trị băm để đối chiếu ở đâu cho đáng tin?
Từ trang chính thức của nơi phát hành qua kết nối bảo mật, hoặc từ kho mã nguồn chính chủ. Nếu bạn tải tệp từ trang gương thì vẫn nên lấy con số băm từ trang gốc. Mức bảo đảm cao nhất là khi tệp chứa giá trị băm được ký số bằng khóa của nhóm phát triển.
Băm khớp có nghĩa tệp chắc chắn an toàn không?
Không hẳn. Nó chỉ chứng minh tệp bạn có giống hệt tệp mà nguồn công bố. Nếu chính nguồn đó phát hành phần mềm có vấn đề, hoặc kẻ tấn công thay được cả tệp lẫn con số băm trên trang, thì kết quả khớp không nói lên điều gì về mức an toàn của nội dung.
So sánh có phân biệt chữ hoa chữ thường không?
Không. Công cụ chuyển chuỗi bạn dán vào thành chữ thường và cắt khoảng trắng ở hai đầu trước khi so, nên bạn dán chuỗi viết hoa từ tài liệu vẫn khớp bình thường. Chỉ cần chuỗi có đủ và đúng ký tự, không thiếu không thừa.
Băm được tệp lớn cỡ nào?
Vài trăm megabyte thường vẫn chạy được. Tệp nhiều gigabyte như ảnh đĩa cài hệ điều hành có thể làm tab hết bộ nhớ vì toàn bộ tệp phải nằm trong bộ nhớ khi băm. Với tệp lớn như vậy, hãy dùng lệnh tính băm của hệ điều hành vì nó đọc theo từng khối.
Kiểm tra được nhiều tệp cùng lúc không?
Không, công cụ xử lý một tệp mỗi lần và chọn tệp mới sẽ thay kết quả cũ. Cần đối chiếu một bộ nhiều tệp thì bạn làm lần lượt và ghi kết quả ra ngoài, hoặc dùng công cụ dòng lệnh vốn duyệt được cả thư mục trong một lệnh.
Vì sao tính hash tệp lớn lại lâu?
Vì trình duyệt phải đọc toàn bộ tệp từ ổ đĩa vào bộ nhớ rồi mới băm, nên thời gian phụ thuộc chủ yếu vào tốc độ ổ đĩa. Với tệp vài trăm megabyte có thể mất vài chục giây mà giao diện chỉ hiện vòng xoay. Hãy chờ thay vì bấm lại, bấm lại sẽ khởi động lại từ đầu.
Tệp tôi chọn có bị tải lên máy chủ không?
Không. Trình duyệt đọc tệp từ ổ đĩa của bạn và tính băm bằng thư viện mã hóa sẵn có ngay tại máy, không có lời gọi mạng nào. Bạn kiểm tra được cả bản sao lưu cơ sở dữ liệu hay tệp hợp đồng mà nội dung vẫn nằm trong máy.
Từ khóa liên quan
- kiểm tra hash file
- checksum file online
- so sánh sha256 file
- kiểm tra file tải về có bị lỗi không
- file hash checker online
- tính sha1 sha256 cho file
- checksum là gì
- xác minh bộ cài phần mềm
- md5 checksum file
- hash không khớp phải làm sao
- kiểm tra tính toàn vẹn file
- sha1 có còn an toàn không
- va chạm hash là gì
- kiểm tra file iso trước khi cài
- chữ ký số bộ cài phần mềm
- lệnh tính hash trên windows
- kiểm tra file bị sửa đổi
- công cụ bảo mật online miễn phí
- hash file không cần upload
- đối chiếu checksum bản phát hành
