Công Cụ Này Là Gì?
MD5 là một hàm băm biến bất kỳ đầu vào nào thành một dấu vân tay hexa 32 ký tự cố định. Cùng một đầu vào luôn tạo ra cùng một hash, và chỉ cần thay đổi một ký tự cũng tạo ra kết quả hoàn toàn khác. Điều này khiến hash hữu ích cho checksum, khóa cache, khử trùng lặp, và kiểm tra tính toàn vẹn dữ liệu.
Lưu ý bảo mật: MD5 đã bị phá vỡ về mặt mật mã học — có thể tạo ra các va chạm (collision) — nên không được dùng cho mật khẩu hoặc chữ ký. Với những mục đích đó, hãy dùng SHA-256 (cũng có bên dưới) hoặc phương pháp băm mật khẩu chuyên dụng như bcrypt. MD5 vẫn ổn cho các mục đích không liên quan bảo mật như checksum và khóa cache.
Tại Sao Nên Dùng?
- Tạo checksum để xác minh một file hoặc chuỗi không bị thay đổi ngoài ý muốn.
- Tạo khóa cache và ID khử trùng lặp có tính xác định.
- So sánh với một MD5 đã biết để kiểm tra tính toàn vẹn dữ liệu.
- Nhận SHA-1 và SHA-256 cùng lúc — không cần công cụ thứ hai.
- 100% cục bộ: nội dung của bạn không bao giờ rời khỏi trình duyệt.
Cách Sử Dụng
- Gõ hoặc dán văn bản của bạn vào ô nhập liệu.
- Nhấn "Generate Hash".
- Đọc kết quả MD5, SHA-1 và SHA-256 (tích "Uppercase" nếu hệ thống của bạn yêu cầu chữ hoa).
- Nhấn "Copy" bên cạnh hash bạn cần.
Ví dụ
Đầu vào
helloĐầu ra
MD5: 5d41402abc4b2a76b9719d911017c592
SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824Hash có tính xác định: "hello" luôn tạo ra chính xác các giá trị này trên mọi công cụ, mỗi lần.
Bạn nên dùng loại hash nào?
Cả ba đều là hash một chiều, nhưng không thể thay thế cho nhau — lựa chọn đúng hoàn toàn phụ thuộc vào việc bạn cần bảo mật hay chỉ cần một dấu vân tay.
| Thuật toán | Kích thước đầu ra | Dùng cho | Không dùng cho |
|---|---|---|---|
| MD5 | 128-bit (32 ký tự hexa) | Checksum, khóa cache, khử trùng lặp, phát hiện thay đổi file ngoài ý muốn | Mật khẩu, chữ ký số, bất cứ thứ gì liên quan bảo mật — có thể tạo ra va chạm |
| SHA-1 | 160-bit (40 ký tự hexa) | Tương thích hệ thống cũ (ví dụ hash commit Git cũ) | Thiết kế mới liên quan bảo mật — các cuộc tấn công va chạm thực tế đã tồn tại từ 2017 |
| SHA-256 | 256-bit (64 ký tự hexa) | Chữ ký số, chứng chỉ TLS, blockchain, checksum nơi khả năng chống giả mạo quan trọng | Lưu trữ mật khẩu trực tiếp — ngay cả SHA-256 cũng quá nhanh cho việc đó; hãy dùng bcrypt, scrypt hoặc Argon2 thay thế |
Các trường hợp sử dụng phổ biến
- Xác minh một file đã tải xuống khớp với checksum của nhà phát hành trước khi chạy nó, bằng cách băm file và so sánh kết quả.
- Tạo khóa cache có tính xác định từ một URL hoặc chuỗi truy vấn, để các yêu cầu giống hệt luôn ánh xạ đến cùng một mục cache.
- Khử trùng lặp một danh sách bản ghi lớn bằng cách băm mỗi bản ghi và so sánh hash thay vì so sánh toàn bộ văn bản.
- Kiểm tra nhanh xem hai bản sao của một file có giống hệt từng byte không mà không cần mở hoặc so sánh trực tiếp.
Tại sao va chạm quan trọng với bảo mật nhưng không với checksum
Một va chạm hash nghĩa là hai đầu vào khác nhau tạo ra cùng một kết quả hash — về mặt toán học điều này là không thể tránh khỏi với bất kỳ hàm băm nào (vì đầu vào là vô hạn còn đầu ra có độ dài cố định), nhưng rủi ro thực tế hoàn toàn phụ thuộc vào trường hợp sử dụng. Đối với chữ ký bảo mật, một va chạm được thiết kế có chủ đích cho phép kẻ tấn công thay thế một file độc hại cho một file hợp pháp trong khi vẫn giữ cùng hash, đây chính xác là điều đã được chứng minh với MD5 từ năm 2004 và với SHA-1 từ năm 2017. Đối với checksum hoặc khóa cache, không ai đang cố tạo ra va chạm — bạn chỉ đang kiểm tra xem một file có bị hỏng ngoài ý muốn hay hai chuỗi bất kỳ có tình cờ giống hệt nhau không — nên cùng điểm yếu toán học phá vỡ trường hợp sử dụng bảo mật của MD5 gần như không có tác động nào đến các mục đích không liên quan bảo mật của nó.
Câu Hỏi Thường Gặp
Tôi có thể giải mã hash MD5 về văn bản gốc không?
Không — băm là một chiều theo thiết kế; không thể tính ra bản gốc từ hash. Các trang web "giải mã MD5" chỉ tra cứu hash trong các bảng khổng lồ tính sẵn của các đầu vào phổ biến, đó là lý do đầu vào duy nhất không thể đảo ngược được.
MD5 có an toàn để lưu trữ mật khẩu không?
Không, tuyệt đối không. MD5 nhanh để brute-force và có các cuộc tấn công va chạm đã biết. Hãy dùng bcrypt, scrypt hoặc Argon2 cho mật khẩu. MD5 chỉ chấp nhận được cho mục đích không liên quan bảo mật như checksum.
Tại sao cùng một văn bản lại cho ra hash khác với công cụ khác?
Thường là do sự khác biệt vô hình: một dòng mới ở cuối, khoảng trắng, dấu kết thúc dòng khác nhau (\r\n so với \n), hoặc encoding văn bản khác nhau. Đầu vào giống hệt từng byte luôn cho ra hash giống hệt.
Sự khác biệt giữa MD5, SHA-1 và SHA-256 là gì?
Chúng khác nhau về độ dài đầu ra và mức độ bảo mật: MD5 (128-bit) và SHA-1 (160-bit) đều đã bị phá vỡ cho mục đích bảo mật; SHA-256 (256-bit) là chuẩn hiện tại và vẫn an toàn. Khi không chắc chắn, hãy dùng SHA-256.
Văn bản của tôi có được gửi đến máy chủ để băm không?
Không. MD5 được tính bằng JavaScript và SHA-1/SHA-256 bằng Web Crypto API tích hợp sẵn của trình duyệt — mọi thứ ở lại trên thiết bị của bạn.