Mã băm và checksum dùng để làm gì?
Mã băm là chuỗi ký tự có độ dài cố định được tính từ toàn bộ nội dung của một tệp. Chỉ một thay đổi rất nhỏ trong tệp cũng tạo ra kết quả khác hoàn toàn. Vì vậy, mã băm thường được dùng để kiểm tra tệp tải về có nguyên vẹn hay không, phát hiện lỗi sao chép và đối chiếu hai bản tệp mà không cần mở nội dung. Nhiều nhà phát hành phần mềm công bố checksum bên cạnh liên kết tải xuống.
Các thuật toán được hỗ trợ
Công cụ tạo SHA-1, SHA-256, SHA-384 và SHA-512 bằng Web Crypto có sẵn trong trình duyệt.
SHA-256 — mặc định nên dùng
Đây là lựa chọn phổ biến nhất để xác minh tệp và thường là giá trị bạn cần đối chiếu. Cân bằng tốt giữa độ dài chuỗi và mức an toàn.
SHA-384 và SHA-512
Tạo chuỗi dài hơn, dùng khi nhà phát hành công bố ở dạng này hoặc khi yêu cầu nội bộ đòi hỏi. Không "an toàn hơn đáng kể" cho việc kiểm tra tệp thông thường — chọn đúng thuật toán mà nguồn của bạn công bố mới là điều quan trọng.
SHA-1 — chỉ để tương thích
Được giữ lại để đối chiếu với nguồn cũ, nhưng không nên dùng cho mục đích bảo mật mới vì thuật toán này không còn chống va chạm đủ mạnh.
Cách kiểm tra một tệp tải xuống
Chọn đúng tệp vừa tải. Chờ trình duyệt tính xong rồi sao chép mã của thuật toán mà nhà phát hành cung cấp. So sánh toàn bộ chuỗi, không chỉ vài ký tự đầu hoặc cuối — đây là lỗi thường gặp nhất và cũng là lỗi nguy hiểm nhất. Chữ hoa và chữ thường trong biểu diễn hexadecimal có cùng giá trị, nhưng mọi ký tự số phải khớp.
Nếu khác nhau, tệp có thể đã tải lỗi, được đóng gói lại hoặc bị thay đổi; không nên chạy tệp cho đến khi xác minh được nguồn. Muốn so sánh hai chuỗi hash dài bằng mắt cho chắc, bạn có thể dán chúng vào công cụ so sánh văn bản để thấy chính xác ký tự nào lệch.
Quyền riêng tư và giới hạn
Tệp được đọc cục bộ vào bộ nhớ và đưa qua API mật mã của trình duyệt. Nội dung không được gửi lên máy chủ. Điều này phù hợp với tài liệu riêng tư, tuy nhiên tệp rất lớn có thể cần nhiều bộ nhớ vì phiên bản hiện tại đọc toàn bộ tệp trước khi tính.
Mã băm chỉ xác nhận hai nội dung giống nhau khi bạn đã có checksum đáng tin cậy để đối chiếu; bản thân một chuỗi hash không chứng minh tác giả hoặc độ an toàn của tệp. Hãy lấy checksum từ website chính thức qua kết nối bảo mật và kết hợp chữ ký số khi nhà phát hành cung cấp. Nếu bạn cần băm một đoạn văn bản thay vì cả tệp, hãy dùng công cụ tạo UUID và mã băm.