Bộ tạo giá trị hash MD5

Tạo ra giá trị kiểm tra MD5 dạng thập lục phân gồm đúng 32 ký tự, giống hệt md5sum, openssl dgst -md5certutil -hashfile – rất hữu ích khi trang tải xuống công bố giá trị MD5 và bạn muốn kiểm tra tính trùng khớp của tệp mà không cần cài đặt công cụ CLI. Xử lý dữ liệu đầu vào văn bản (được xử lý dưới dạng byte UTF-8, tương thích với các công cụ Unix) và dữ liệu đầu vào tệp (được truyền theo luồng để ngay cả các tệp lớn cũng vừa với bộ nhớ).

Cách kiểm tra giá trị checksum của tệp tin

  1. 1

    Thả tệp đã tải về

    Công cụ truyền dữ liệu này theo từng khối qua hàm MD5.

  2. 2

    Chờ đợi kết quả phân tích.

    Trên hầu hết các máy tính, tốc độ đạt khoảng vài MB/s; việc băm một tệp ISO dung lượng 500 MB mất khoảng 30–60 giây.

  3. 3

    So sánh với giá trị checksum đã được công bố

    Sao chép và dán giá trị hash mong muốn. Công cụ sẽ hiển thị trạng thái phù hợp hoặc không phù hợp bằng màu sắc tương ứng.

  4. 4

    Đừng chạy tệp nếu không khớp

    Giá trị hash khác nhau cho thấy tệp đã bị hỏng hoặc bị giả mạo. Vui lòng tải lại từ nguồn đáng tin cậy.

Định dạng đầu ra chuẩn

MD5 tạo ra một giá trị 128 bit, thông thường được biểu diễn dưới dạng 32 ký tự thập lục phân viết bằng chữ thường:

9e107d9d372bb6826bd81d3542a419d6

Unix md5sum in ra là <hash> <filename> với hai khoảng trắng. GNU Core Utilities yêu cầu định dạng này cho flag -c (đã kiểm tra).

Chế độ văn bản so với chế độ tệp

  • Dữ liệu văn bản được mã hóa theo chuẩn UTF-8 trước khi băm; giá trị này tương ứng với echo -n "text" | md5sum trên hệ điều hành Unix. Trong Windows PowerShell, giá trị mặc định của Get-FileHash là UTF-16 trừ khi bạn chỉ định khác; chính vì vậy hai giá trị này có thể không trùng khớp nhau.
  • Dữ liệu tệp được băm theo từng byte; bất kể nội dung tệp là gì, không có bất kỳ chuyển đổi mã hóa nào được thực hiện. Trình duyệt và công cụ CLI luôn thống nhất về giá trị hash của tệp.

Tương ứng với giá trị kiểm định đã được công bố

Hầu hết các trang tải xuống đều công bố giá trị hash cùng tên tệp:

md5sum: 9e107d9d372bb6826bd81d3542a419d6  yourfile.iso
  • Hãy đảm bảo bạn đã tải đúng tệp (đôi khi các nhà cung cấp công bố giá trị hash riêng cho từng phiên bản: x86_64 so với ARM).
  • Hãy tin tưởng vào nguồn của giá trị checksum. Một liên kết MD5 trên cùng một trang đã bị xâm phạm là vô giá trị. Khi có sẵn, hãy đối chiếu với tệp SHA256SUMS đã được ký bằng GPG.

Các nguyên nhân phổ biến dẫn đến sự không khớp

  • Tải xuống một phần, trình duyệt bị gián đoạn, việc tải lại không đúng cách.
  • Phiên bản khác, bản trên máy chủ nhân bản (mirror) khác với bản mà giá trị checksum cam kết.
  • Chọn nhầm tệp (bạn đã băm tệp .sig thay vì tệp ISO).
  • Nén hoặc định dạng lại, các tệp .tar.gz và thư mục được trích xuất từ chúng có giá trị hash hoàn toàn khác nhau.
  • Can thiệp thực sự, hiếm gặp, nhưng chính đây là lý do khiến các giá trị checksum tồn tại.

Tốc độ

MD5 rất nhanh: một chiếc laptop trong vòng năm năm gần đây có tốc độ xử lý hash đạt trên 400 MB/s. Rào cản chính khi xử lý hash một tệp trong trình duyệt thường là thao tác đọc/ghi vào đĩa, chứ không phải quá trình tính toán toán học.

Khi MD5 không đủ

Đối với các yêu cầu về tính toàn vẹn nhạy cảm với bảo mật (nhằm xác minh rằng trình cài đặt đã tải xuống không bị thay thế bằng phần mềm độc hại), nên ưu tiên sử dụng SHA-256 – vì các trường hợp xung đột của MD5 rất dễ tính toán. Hầu hết các dự án hiện đại đều công bố cả hai giá trị này.

Câu hỏi thường gặp

PowerShell mặc định sử dụng Get-FileHash với thuật toán SHA-256 thay vì MD5. Hãy sử dụng Get-FileHash -Algorithm MD5 file.iso để khớp với giá trị MD5 đã được công bố.

Hầu hết các trình duyệt hiện đại đều có thể truyền dữ liệu lên đến khoảng 2 GB một cách trơn tru. Đối với các tệp lớn hơn (như DVD hoặc hình ảnh đĩa), hãy sử dụng công cụ CLI – md5sum file trên Linux và Get-FileHash -Algorithm MD5 trên Windows.

Tệp .md5 thường chứa một dòng duy nhất: giá trị hash dưới dạng thập lục phân, sau đó là hai khoảng trắng và tên tệp. Các công cụ như md5sum -c checksum.md5 sẽ đọc dòng này để kiểm tra. Chỉ riêng phần thập lục phân mới chính là giá trị hash thô.

Đúng vậy – va chạm MD5 rất dễ được tạo ra một cách cố ý. Đối với các va chạm ngẫu nhiên giữa các tệp thực tế, xác suất chỉ khoảng 1 trên 2^64, gần như không thể xảy ra. Để chống lại các va chạm do kẻ xấu cố tình tạo ra, hãy sử dụng SHA-256.

Không. Quá trình băm được thực hiện hoàn toàn trong trình duyệt của bạn thông qua API WebCrypto và các khối mảng có kiểu (typed array). Các tệp không bao giờ rời khỏi thiết bị của bạn.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác