fixmint
VI

MD5, SHA-1 hay SHA-256: nên dùng mã hash nào khi tải file

Tác giả: · · cập nhật 8 tháng 11, 2026 · 4 phút đọc

Khi kiểm tra một file tải về, hãy dùng SHA-256 hoặc SHA-512 bất cứ khi nào nhà phát hành có cung cấp. MD5 và SHA-1 vẫn phát hiện được hư hỏng ngoài ý muốn, chẳng hạn một file tải về bị đứt giữa chừng, nhưng các nhà nghiên cứu đã chỉ ra rằng có thể tạo hai file khác nhau có cùng mã hash MD5 hoặc SHA-1. Vì vậy, khi hai mã hash từ các thuật toán này khớp nhau, điều đó không chứng minh được file là bản do nhà phát hành tạo ra. Hash là dấu vân tay, không phải mã hóa, và nó chỉ có ý nghĩa khi đến từ một nguồn bạn tin cậy.

Công cụ tạo mã hashFile tải về có khớp không?Dùng miễn phí

Hash làm được gì, và không làm được gì

Hàm hash biến dữ liệu có kích thước bất kỳ thành một dấu vân tay có độ dài cố định. Cùng một đầu vào luôn cho cùng một dấu vân tay, và chỉ cần thay đổi một byte là dấu vân tay sẽ hoàn toàn khác. Vì vậy hash rất hữu ích để so sánh: nếu dấu vân tay của bản bạn có khớp với dấu vân tay được công bố, hai file gần như chắc chắn giống hệt nhau.

Hash không phải là mã hóa. Không thể đảo ngược nó để khôi phục file, và nó không dùng khóa nào. Nó không giấu gì cả, và tự nó không chứng minh được ai đã tạo ra file. Checksum chỉ đơn giản là một mã hash mà nhà phát hành in kèm bên cạnh file tải về để bạn so sánh.

Bốn lựa chọn phổ biến

Thuật toánĐộ dài đầu raDùng để
MD5128 bit, 32 ký tự hexChỉ phát hiện hư hỏng ngoài ý muốn
SHA-1160 bit, 40 ký tự hexKiểm tra kiểu cũ; tránh dùng cho bảo mật
SHA-256256 bit, 64 ký tự hexLựa chọn thông dụng cho file tải về
SHA-512512 bit, 128 ký tự hexCùng họ, đầu ra dài hơn

Vì sao MD5 và SHA-1 không đủ

Va chạm (collision) nghĩa là hai đầu vào khác nhau nhưng có cùng một mã hash. Va chạm trong MD5 đã được biết đến từ năm 2004. Năm 2017, các nhà nghiên cứu công bố một va chạm SHA-1 trong thực tế: hai file PDF khác nhau có chung một mã hash.

Với file tải về, điều này quan trọng vì kẻ tấn công kiểm soát một file có thể tạo ra phiên bản độc hại mang cùng mã hash MD5 hoặc SHA-1 với bản chính thức. Nếu nhà phát hành chỉ liệt kê MD5 hoặc SHA-1, việc khớp mã hash không còn chứng minh file là chính gốc. Phần câu hỏi thường gặp của công cụ tạo mã hash cũng nói điều tương tự: hãy dùng SHA-256 hoặc SHA-512 cho mọi việc liên quan đến bảo mật.

Tính đến thời điểm viết bài, chưa có va chạm SHA-256 nào trong thực tế được biết đến, đó là lý do SHA-256 là lựa chọn thông dụng. Hướng dẫn kiểm tra checksum SHA-256 sẽ hướng dẫn các bước cụ thể.

Chọn đúng thuật toán

  1. Nếu nhà phát hành cung cấp SHA-256 hoặc SHA-512, hãy dùng nó và bỏ qua MD5 và SHA-1 khi cần bảo mật.
  2. Nếu chỉ có MD5 hoặc SHA-1, vẫn nên kiểm tra bằng Công cụ tạo mã hash. Công cụ này vẫn phát hiện được file bị hỏng hoặc tải thiếu. Hãy xem kết quả khớp là "không bị hỏng", chứ không phải "chính gốc".
  3. Nếu không có mã hash nào, bạn không thể kiểm tra tính toàn vẹn theo cách này. Hãy tải từ trang chính thức qua HTTPS, và nếu dự án có công bố file checksum đã ký, hãy kiểm tra chữ ký.

Công cụ tạo mã hash tính đồng thời MD5, SHA-1, SHA-256, SHA-384 và SHA-512, cho văn bản hoặc cho một file. File được đọc ngay trong trình duyệt của bạn và không có gì được tải lên. Dán mã hash của nhà phát hành vào ô Mã hash mong đợi. Công cụ sẽ bỏ khoảng trắng và không phân biệt chữ hoa, chữ thường trước khi so sánh, nên một mã hash viết hoa hoặc được chia thành nhóm vẫn khớp. Với file rất lớn, bộ nhớ trình duyệt có thể không đủ, khi đó hãy dùng công cụ dòng lệnh như sha256sum trên Linux, hoặc shasum -a 256 trên Mac.

Kết quả khớp cho bạn biết điều gì

Mã hash khớp nghĩa là bản của bạn gần như chắc chắn giống hệt file đã được băm. Nó không cho biết ai đã thực hiện việc băm, hay file đã băm có đúng là file nhà phát hành định phát hành hay không. Với điều đó, nguồn quan trọng hơn thuật toán. Nếu mã hash lấy từ trang phát hành chính thức của nhà phát hành, và bạn truy cập trang đó trực tiếp chứ không qua liên kết trong tin nhắn, thì kết quả khớp là bằng chứng mạnh. Nếu mã hash lấy từ bình luận, trang gương hoặc diễn đàn, hãy coi nó là chưa được xác minh cho đến khi bạn tìm thấy nó trên một trang đáng tin cậy.

Checksum cần một nguồn đáng tin cậy

Một checksum nằm trên cùng máy chủ với file chỉ chứng minh rằng bản sao khớp với những gì máy chủ đó đang giữ. Nếu kẻ tấn công thay file, chúng cũng có thể thay luôn checksum bên cạnh. Checksum chỉ hữu ích khi nó đến từ một nơi tách biệt, chẳng hạn ghi chú phát hành đã ký của dự án, hoặc một trang bạn truy cập độc lập với liên kết tải.

Mã hash cho mật khẩu thì khác

Lưu trữ mật khẩu cũng dùng hash, nhưng cần một hàm hash chậm được thiết kế riêng cho mật khẩu, với một salt duy nhất cho mỗi mật khẩu. Một hàm hash nhanh như SHA-256 là công cụ sai cho việc đó. Với file tải về, nhiệm vụ là so sánh, và SHA-256 làm việc này rất tốt.

Các trường hợp đặc biệt

  • Chữ hoa, chữ thường. Các chữ cái hex từ A đến F giống nhau dù viết hoa hay viết thường, nên hãy so sánh mà không cần quan tâm đến chữ hoa.
  • Mã hash bị cắt. Một số trang chỉ in phần đầu của mã hash. Kết quả khớp ngắn chẳng chứng minh được gì, nên hãy so sánh toàn bộ giá trị.
  • Nhiều file. Một số dự án công bố một file checksum cho cả bản phát hành. Hãy tìm dòng có đúng tên file, vì kết quả khớp trên dòng của file khác không chứng minh được gì.

Được dịch từ Bản tiếng Anh với sự hỗ trợ của AI.

Bình luận

    Chưa có bình luận nào. Hãy là người đầu tiên.

    Đánh giá của bạn (không bắt buộc)

    Email của bạn không bao giờ được hiển thị hoặc lưu lại.

    Bìa của How to Remain Valuable When Intelligence Becomes CheapHow to Remain Valuable When Intelligence Becomes Cheap

    224 trang về những lợi thế của con người, kinh tế và chiến lược vẫn khan hiếm khi AI có thể làm phần lớn công việc tư duy.

    $3.84Mua trên GumroadBản tiếng Anh