Công cụ tính hash của tệp

Dán nội dung của một tệp hoặc bất kỳ văn bản nào và nhận mọi giá trị hash mật mã thông dụng: MD5, SHA-1, SHA-256 và SHA-512. Hữu ích để đối chiếu bản tải xuống với checksum mà nhà cung cấp công bố, kiểm tra ngẫu nhiên tính toàn vẹn của bản sao lưu, hoặc thêm mã định danh theo nội dung vào một quy trình xử lý. Văn bản bạn dán vào được gửi đến máy chủ như một phần của yêu cầu trang dùng để tính các giá trị hash.

Cách dùng công cụ tính hash

  1. 1

    Dán văn bản vào

    Sao chép nội dung tệp hoặc bất kỳ văn bản nào vào vùng nhập. Công cụ này tính hash cho văn bản; nó không đọc tệp từ ổ đĩa của bạn.

  2. 2

    Tính toán

    Nhấp vào nút Tính hash. Cùng một dữ liệu đầu vào được xử lý bằng cả bốn thuật toán cùng lúc.

  3. 3

    Đọc các giá trị hash

    MD5, SHA-1, SHA-256 và SHA-512 đều được hiển thị cùng lúc, ở dạng thập lục phân chữ thường, sẵn sàng để sao chép.

  4. 4

    So sánh với giá trị tham chiếu

    So sánh từng giá trị hash với checksum mà nhà cung cấp công bố, từng ký tự một. Công cụ hiển thị các giá trị hash; việc so sánh là của bạn.

Bảng tra cứu hàm hash

Thuật toán Độ dài kết quả Trạng thái cho tính toàn vẹn Trạng thái cho bảo mật
MD5 128 bit (32 ký tự thập lục phân) Ổn cho việc kiểm tra toàn vẹn đơn giản Đã bị phá, không dùng cho bảo mật
SHA-1 160 bit (40 ký tự thập lục phân) Ổn cho việc kiểm tra toàn vẹn Đã bị phá, đã chứng minh có va chạm
SHA-256 256 bit (64 ký tự thập lục phân) Giá trị mặc định được khuyến nghị Vẫn được coi là an toàn
SHA-512 512 bit (128 ký tự thập lục phân) Thường nhanh hơn trên hệ 64 bit Vẫn được coi là an toàn

Khi nào nên dùng loại nào

  • MD5: chỉ để phát hiện hư hỏng ngẫu nhiên (một bit bị đảo khi đọc từ đĩa, một lần tải xuống lỗi). Không an toàn khi kẻ tấn công có thể tạo ra một tệp cho khớp giá trị.
  • SHA-1: các hệ thống cũ không thể nâng cấp. Tránh dùng cho bất cứ thứ gì mới.
  • SHA-256: chuẩn mặc định hiện đại. Mọi bản phân phối Linux, mọi nhà cung cấp đám mây, mọi trình quản lý gói đều công bố SHA-256.
  • SHA-512: khi nền tảng hỗ trợ hash 64 bit ở cấp độ gốc, thường nhanh hơn SHA-256 khoảng 20-30% trên phần cứng như vậy, dù kết quả dài hơn.

Quy trình điển hình: xác minh một bản tải xuống

  1. Tải tệp từ nhà cung cấp.
  2. Tìm giá trị SHA-256 mà nhà cung cấp công bố trên trang phát hành của họ.
  3. Nếu tệp là văn bản, hãy dán nội dung của nó vào công cụ này rồi đọc giá trị SHA-256. Với tệp nhị phân, hãy dùng công cụ dòng lệnh cục bộ (sha256sum trên Linux, shasum trên macOS, Get-FileHash trong PowerShell).
  4. So sánh hai chuỗi theo từng ký tự.
  5. Nếu chúng khác nhau, tệp đã bị hỏng hoặc bị can thiệp: hãy xóa đi và tải lại từ một máy chủ nhân bản chính thức.

Những sai lầm phổ biến

  • Chỉ so sánh 6-8 ký tự thập lục phân đầu tiên. Kẻ tấn công có đủ năng lực tính toán có thể giả mạo va chạm tiền tố ngắn cho các thuật toán yếu, luôn so sánh toàn bộ chuỗi.
  • Tin vào giá trị hash được công bố trên cùng trang với bản tải xuống. Nếu trang web bị xâm phạm thì cả hai đều bị xâm phạm. Khi rủi ro cao, hãy dùng một kênh riêng (Twitter của nhà cung cấp, ghi chú phát hành có chữ ký).
  • Xem một giá trị MD5 trùng khớp là “an toàn”. Điều đó chỉ chứng minh tệp không bị hỏng ngẫu nhiên, chứ không chứng minh rằng nó không bị tráo đổi.

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

Có. Văn bản được gửi đến máy chủ như một phần của yêu cầu trang dùng để tính các giá trị hash. Văn bản không được lưu trữ và không được thêm vào liên kết trang.

Mỗi hàm hash theo thiết kế đều tạo ra một dấu vân tay khác nhau. Dữ liệu đầu vào là như nhau, nhưng MD5, SHA-1, SHA-256 và SHA-512 xử lý nó theo cách khác nhau và trả về chuỗi thập lục phân có độ dài khác nhau.

Có, hiện tượng này gọi là va chạm. Với MD5 và SHA-1, có thể tạo ra va chạm trên thực tế; còn với SHA-256 và SHA-512 thì chưa ai chứng minh công khai được và dự kiến sẽ không xảy ra trong nhiều thập kỷ.

Không có giới hạn kích thước giả tạo, nhưng văn bản rất lớn sẽ làm trang chậm đi và có thể chạm giới hạn của trình duyệt cho vùng nhập văn bản. Công cụ này chỉ xử lý văn bản; với tệp nhị phân, hãy dùng công cụ đọc trực tiếp tệp.

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