Công cụ tạo hash MD5
Tạo hash MD5 của bất kỳ văn bản nào ngay trong trình duyệt. Đầu vào UTF-8, hex hoặc Base64; đầu ra hex hoặc Base64. Miễn phí, riêng tư, không tải lên.
Chạy hoàn toàn trong trình duyệt. Dữ liệu của bạn không bao giờ bị tải lên.
Tạo hash MD5 là gì?
MD5 là hàm băm 128 bit theo RFC 1321, hiện vẫn được dùng rộng rãi cho checksum, khóa cache và loại bỏ dữ liệu trùng lặp. Công cụ này tính giá trị băm MD5 128 bit của văn bản hoặc byte thô (hex hoặc Base64) ngay khi bạn gõ và hiển thị dưới dạng 32 ký tự hex hoặc Base64.
Cách sử dụng Tạo hash MD5
- Nhập hoặc dán dữ liệu vào ô Văn bản cần băm — giá trị băm cập nhật ngay khi bạn gõ (ô trống sẽ hiện hash của đầu vào rỗng).
- Chọn Mã hóa đầu vào: Văn bản (UTF-8) băm các ký tự dưới dạng UTF-8, còn Byte dạng hex hoặc Base64 băm các byte thô sau khi giải mã.
- Chọn Định dạng đầu ra (hex chữ thường, hex chữ hoa hoặc Base64) rồi nhấn Sao chép.
Ví dụ
abc
900150983cd24fb0d6963f7d28e17f72
MD5 của 3 byte ASCII "abc" (UTF-8, đầu ra hex chữ thường), là test vector chuẩn.
Khi nào nên dùng Tạo hash MD5
Dùng công cụ MD5 cho văn bản để băm chuỗi: tái tạo một giá trị trong tài liệu hoặc mã nguồn, tạo test vector, so sánh dữ liệu đầu vào của chữ ký API, hoặc kiểm tra xem chương trình lẽ ra phải xuất ra gì. Đừng dùng nó để bảo vệ bất cứ thứ gì trước kẻ tấn công — MD5 đã bị phá vỡ về mặt mật mã. Cũng đừng dùng nó để kiểm tra tệp tải về: sao chép nội dung tệp vào ô văn bản sẽ làm thay đổi ký tự xuống dòng và bảng mã, hãy dùng công cụ checksum MD5 cho tệp. Khi dữ liệu có thể do kẻ tấn công cung cấp, hãy dùng SHA-256.
Tạo hash MD5 hoạt động như thế nào
MD5 đệm thông điệp thành bội số của 512 bit (một bit 1, các bit 0, rồi độ dài 64 bit dạng little-endian) và xử lý mỗi khối bằng bốn vòng, mỗi vòng 16 bước trên bốn từ 32 bit. Mỗi bước trộn vào một từ của thông điệp, một hằng số suy ra từ hàm sin và một phép xoay. Trạng thái cuối cùng, ghi theo little-endian, là giá trị băm 128 bit (32 ký tự hex). Văn bản trước tiên được chuyển thành byte (mặc định là UTF-8), nên cùng các ký tự sẽ luôn cho cùng một hash.
Các Trường Hợp Sử Dụng Phổ Biến
- Kiểm tra MD5 mong đợi của một chuỗi trong unit test hoặc fixture
- Băm các byte hex sao chép từ trình gỡ lỗi, bản bắt gói tin hoặc đặc tả giao thức
- So sánh đầu ra MD5 giữa hai ngôn ngữ lập trình cho kết quả khác nhau
- Tạo định danh hoặc khóa cache có tính xác định từ văn bản
- Tái tạo các giá trị MD5 cũ được lưu bởi một hệ thống đời trước
Lưu Ý Bảo Mật
MD5 không còn an toàn cho mục đích bảo mật. Đã có các tấn công va chạm thực tế (ví dụ chứng chỉ CA giả mạo năm 2008 và mã độc Flame), nên hai tệp khác nhau có thể có cùng MD5. Nó vẫn ổn để phát hiện hư hỏng ngẫu nhiên, nhưng đừng dùng cho chữ ký số, chứng chỉ hay mật khẩu — hãy dùng SHA-256 hoặc SHA-3 thay thế. Hash thuần cũng không phù hợp để lưu mật khẩu: hãy dùng hàm băm mật khẩu chậm, có salt như Argon2, scrypt hoặc bcrypt. Mọi phép tính diễn ra cục bộ trong trình duyệt; những gì bạn nhập không được gửi đi đâu cả.
Câu Hỏi Thường Gặp
Có thể giải mã hash MD5 không?
Không. Hash không phải là mã hóa nên không có gì để giải mã cả. Các trang web "dịch ngược" MD5 thực chất chỉ tra hash trong những bảng khổng lồ chứa các chuỗi đã băm trước đó, cách này hiệu quả với đầu vào ngắn hoặc phổ biến.
Vì sao hai công cụ cho ra MD5 khác nhau với cùng một văn bản?
Thường là do các byte khác nhau: một ký tự xuống dòng ở cuối, kiểu xuống dòng Windows (CRLF) hoặc bảng mã ký tự khác. Công cụ này băm chính xác các byte UTF-8 của nội dung trong ô, hoặc các byte thô khi bạn chọn đầu vào Hex hay Base64.
Vì sao chỉ đổi một ký tự mà hash thay đổi hoàn toàn?
Đó là hiệu ứng thác lũ (avalanche) mà mọi hàm băm mật mã đều được thiết kế để có: lật một bit đầu vào sẽ làm thay đổi khoảng một nửa trong 128 bit đầu ra, nên các đầu vào giống nhau vẫn cho giá trị băm chẳng liên quan gì đến nhau.
Dấu cách hoặc ký tự xuống dòng ở cuối có ảnh hưởng không?
Có. Hàm băm tính trên từng byte, nên abc và abc kèm ký tự xuống dòng sẽ cho hai giá trị MD5 khác nhau. Hãy chắc chắn đầu vào chứa đúng những byte bạn muốn băm.