Bộ tạo MD5
MD5 tạo ra một bản tóm tắt dài 128 bit (tương đương 32 ký tự thập lục phân) từ bất kỳ dữ liệu đầu vào nào, văn bản, tệp tin hay luồng dữ liệu. Mặc dù đã bị phá vỡ cho các mục đích mật mã kể từ năm 2004, MD5 vẫn là tiêu chuẩn phổ biến để kiểm tra tính toàn vẹn nhanh chóng (như xác minh việc tải xuống gói phần mềm, tạo dấu vân tay để loại bỏ dữ liệu trùng lặp, hoặc đặt tên cho blob trong Git ở một số trường hợp). Chỉ cần dán văn bản hoặc thả tệp tin vào, công cụ sẽ tạo bản tóm tắt dạng thập lục phân ngay tại chỗ mà không tải lên bất kỳ dữ liệu nào.
Cách tạo giá trị hash MD5
-
1
Chọn dữ liệu đầu vào
Hộp nhập văn bản cho chuỗi tùy ý, hoặc công cụ chọn tệp với dung lượng bất kỳ lên tới khoảng 2 GB.
-
2
Công cụ tính giá trị MD5 ngay trên máy bạn
Các tệp được truyền theo từng khối nhỏ, nhờ đó các tệp lớn không chiếm quá nhiều bộ nhớ.
-
3
Đọc bản tóm tắt thập lục phân
32 ký tự thập lục phân, dạng biểu diễn chuẩn của MD5.
-
4
Sao chép hoặc so sánh
So sánh với giá trị hash mong đợi (ví dụ MD5 do tác giả gói phần mềm công bố) hoặc sao chép để lưu lại.
MD5 là gì: và không phải là gì
- Tất định. Cùng một dữ liệu đầu vào luôn cho ra cùng một kết quả 128 bit.
- Độ dài cố định. Mọi kích thước đầu vào, từ một byte đến một gigabyte, đều tạo ra 32 ký tự thập lục phân.
- Một chiều. Có một bản tóm tắt MD5, bạn không thể đảo ngược để khôi phục dữ liệu đầu vào (trừ các đầu vào cực nhỏ mà đã có sẵn bảng cầu vồng).
- ĐÃ BỊ PHÁ VỠ khi dùng làm hàm băm mật mã. Va chạm (collision) có thể được tính toán dễ dàng. ĐỪNG dùng MD5 cho:
- Lưu trữ mật khẩu (dùng bcrypt, scrypt, Argon2).
- Chữ ký số (dùng SHA-256 hoặc SHA-3).
- Ký chứng chỉ TLS (bị các trình duyệt hiện đại từ chối).
- Bất kỳ tuyên bố toàn vẹn nào nhạy cảm về bảo mật mà kẻ tấn công có thể lợi dụng.
Nơi MD5 vẫn còn dùng tốt
- Kiểm tra toàn vẹn phi đối kháng. Xác nhận rằng tệp không bị hỏng trong quá trình truyền.
- Loại bỏ trùng lặp. Tạo dấu vân tay cho các blob giống hệt nhau trong hệ thống lưu trữ.
- Tạo ETag cho các tài nguyên tĩnh ít thay đổi.
- Khóa bộ nhớ đệm và băm định địa chỉ theo nội dung.
Ví dụ minh họa
| Văn bản đầu vào | Bản tóm tắt MD5 |
|---|---|
| (chuỗi rỗng) | d41d8cd98f00b204e9800998ecf8427e |
a |
0cc175b9c0f1b6a831c399e269772661 |
abc |
900150983cd24fb0d6963f7d28e17f72 |
The quick brown fox jumps over the lazy dog |
9e107d9d372bb6826bd81d3542a419d6 |
The quick brown fox jumps over the lazy dog. (dấu chấm cuối) |
e4d909c290d0fb1ca068ffaddf22cbd0 |
Hãy để ý cách chỉ một ký tự (dấu chấm cuối) làm thay đổi hoàn toàn bản tóm tắt, đó chính là hiệu ứng thác đổ.
MD5 so với họ SHA
| Hàm | Kích thước đầu ra | Bị phá vỡ do va chạm? | Cách dùng phổ biến hiện nay |
|---|---|---|---|
| MD5 | 128 bit | Có (2004) | Toàn vẹn, loại bỏ trùng lặp, ETag |
| SHA-1 | 160 bit | Có (2017) | Cũ; nên tránh trong dự án mới |
| SHA-256 | 256 bit | Không | TLS, commit, mật mã tổng quát |
| SHA-3 | 224–512 bit | Không | Giải pháp thay thế hiện đại cho SHA-2 |
| BLAKE3 | 256 bit | Không | Thay thế nhanh cho SHA-2 |
Câu hỏi thường gặp
Không. MD5 rất dễ bị dò tìm bằng brute-force trên các GPU hiện đại và đã bị phá từ năm 2004. Hãy dùng một hàm băm mật khẩu như Argon2, scrypt hoặc bcrypt.
Với toàn vẹn thông thường (việc tải xuống đã hoàn tất chưa) thì có. Với toàn vẹn chống tấn công (có ai thay tệp bằng phiên bản độc hại không) thì không, hãy dùng SHA-256.
Không. Việc băm được thực hiện ngay trong trình duyệt của bạn thông qua WebCrypto và các mảng có kiểu. Tệp không bao giờ rời khỏi thiết bị của bạn, điều này đặc biệt quan trọng khi băm dữ liệu riêng tư hoặc thuộc thỏa thuận bảo mật (NDA).
Các trình duyệt hiện đại xử lý thoải mái khoảng 2 GB dữ liệu đầu vào dạng luồng. Với các tệp rất lớn (hàng chục GB), nên dùng công cụ dòng lệnh như md5sum hoặc openssl dgst -md5 sẽ hiệu quả hơn.
Đặc tả không quy định chữ hoa hay chữ thường. Hầu hết công cụ Unix xuất chữ thường; một số công cụ Windows dùng chữ hoa. Khi so sánh, hãy chuẩn hóa chữ hoa/thường ở cả hai phía.
Công cụ liên quan
Trình tạo CSR
Tạo Yêu cầu ký chứng chỉ dạng PEM và private key RSA tương ứng. Chỉ định common name, các trường tổ chức và kích thước khóa (2048, 3072 hoặc 4096 bit).
Nhận diện mật mã
Dán văn bản mã hóa vào, công cụ nhận diện sẽ gợi ý các sơ đồ mã hóa/mật mã khả dĩ: Base64, hex, nhị phân, Morse, Caesar hoặc thay thế, JWT và các hàm băm phổ biến.
Trình kiểm tra checksum
Tính checksum MD5, SHA-1, SHA-256, SHA-384, SHA-512 hoặc CRC32 của bất kỳ văn bản nào và đối chiếu với giá trị mong đợi để có kết luận rõ ràng là khớp hay không.
Công cụ tính hash của tệp
Tính giá trị hash MD5, SHA-1, SHA-256 và SHA-512 của văn bản hoặc nội dung tệp bạn dán vào để xác minh bản tải xuống và tính toàn vẹn của tệp.
Bộ mã hóa tệp Base64
Mã hóa mọi tệp (PDF, ZIP, ảnh, tệp thực thi) thành văn bản Base64 để nhúng vào JSON, email, YAML hoặc data URI. Chạy cục bộ, không tải lên.
Mã định danh mã hóa
Dán văn bản mã hóa hoặc giá trị hash; bộ định danh sẽ đề xuất các thuật toán hoặc phương thức mã hóa có khả năng áp dụng: MD5, SHA, bcrypt, AES, RSA, Base64 và nhiều loại khác.
Công cụ này có phiên bản bằng các ngôn ngữ khác
- MD5-Generator [DE]
- Générateur MD5 [FR]
- MD5-generator [SV]
- MD5 생성기 [KO]
- MD5-generator [NL]
- مولّد MD5 [AR]
- Generador de MD5 [ES]
- Generator MD5 [ID]
- MD5ジェネレーター [JA]
- เครื่องสร้างค่า MD5 [TH]
- Generator MD5 [PL]
- Gerador de MD5 [PT]
- MD5 Üreticisi [TR]
- MD5生成器 [ZH]
- MD5 Generator [EN]
- Generatore MD5 [IT]
- Генератор MD5 [RU]