CodeKitHub
Công cụ Tạo dữ liệu

MD5 Mã hóa / Giải mã Trực tuyến

Cập nhật lần cuối:

Nhiều người tìm kiếm công cụ "giải mã MD5", nhưng MD5 không phải là mã hóa — đó là một hàm băm một chiều, nên không có gì để giải mã cả. Công cụ này thực hiện phần thực sự khả thi: chuyển bất kỳ văn bản nào thành mã băm MD5 32 ký tự ngay lập tức, hoàn toàn trong trình duyệt của bạn, để bạn có thể kiểm tra dữ liệu hoặc so sánh với một mã băm đã biết.

Mã băm MD5

MD5 là hàm băm một chiều: không thể khôi phục lại văn bản gốc.

Công Cụ Này Là Gì?

MD5 ("Message Digest 5") nhận bất kỳ đầu vào nào — một từ, một mật khẩu, cả một tệp — và tạo ra một dấu vân tay cố định 128 bit, được viết dưới dạng 32 ký tự thập lục phân. Cùng một đầu vào luôn cho ra cùng một mã băm, và chỉ cần thay đổi một ký tự cũng tạo ra kết quả hoàn toàn khác.

Từ "mã hóa" thường được gắn với MD5, nhưng về mặt kỹ thuật điều đó không đúng. Mã hóa có thể đảo ngược nếu có đúng khóa; băm thì hoàn toàn không thể đảo ngược. Các dịch vụ "giải mã MD5" mà bạn có thể đã thấy trên mạng thực ra không đảo ngược phép toán — chúng chỉ tra cứu mã băm của bạn trong một bảng khổng lồ đã tính sẵn gồm các mật khẩu và từ ngữ phổ biến, và chỉ thành công nếu văn bản gốc của bạn tình cờ đã có trong bảng đó.

MD5 được Ron Rivest công bố năm 1992 dưới dạng RFC 1321. Về mặt mật mã học, nó đã bị phá vỡ cho các mục đích bảo mật (có thể cố tình tạo ra va chạm), nhưng vẫn được sử dụng rộng rãi cho checksum, khóa cache và loại bỏ trùng lặp, những nơi bảo mật không phải là vấn đề chính.

Tại Sao Nên Dùng?

  • Tạo mã băm MD5 để kiểm tra xem tệp hoặc chuỗi có bị thay đổi ngoài ý muốn hay không.
  • So sánh mã băm của bạn với một MD5 đã biết/đã công bố để xác nhận tính toàn vẹn.
  • Tạo khóa cache hoặc ID loại bỏ trùng lặp có tính xác định.
  • Hiểu rõ tại sao việc "giải mã" một mã băm MD5 thực ra không khả thi.
  • 100% cục bộ: văn bản của bạn được băm ngay trong trình duyệt và không bao giờ được tải lên.

Cách Sử Dụng

  1. Nhập hoặc dán văn bản của bạn vào ô nhập liệu.
  2. Nhấp vào "Tạo MD5".
  3. Đọc mã băm 32 ký tự được tạo ra (chọn "Kết quả chữ in hoa" nếu bạn cần chữ hoa).
  4. Nhấp "Sao chép" để sao chép mã băm, hoặc dùng nó để so sánh với một mã băm bạn đã có.

Ví dụ

Đầu vào

hello

Đầu ra

5d41402abc4b2a76b9719d911017c592

MD5 có tính xác định: văn bản "hello" luôn tạo ra chính xác mã băm này trên mọi công cụ, mọi lúc.

"Mã hóa" và "băm": tại sao thuật ngữ lại quan trọng

Mã hóa và băm giải quyết các vấn đề khác nhau, và việc nhầm lẫn giữa chúng dẫn đến những sai lầm bảo mật thực sự. Mã hóa biến đổi dữ liệu một cách có thể đảo ngược bằng khóa — bạn mã hóa bằng khóa, giải mã bằng khóa (giống hoặc tương ứng) và lấy lại dữ liệu gốc. Băm biến đổi dữ liệu một chiều mà không cần bất kỳ khóa nào — về mặt thiết kế, không hề tồn tại thao tác nào biến mã băm trở lại thành đầu vào của nó.

MD5 là một hàm băm, không phải một thuật toán mã hóa. Gọi nó là "mã hóa MD5" là cách dùng thông tục phổ biến, nhưng điều đó tạo ra kỳ vọng sai lầm: không tồn tại thao tác "giải mã MD5" hợp pháp. Bất cứ thứ gì được quảng cáo như vậy đều là bảng tra cứu (chỉ hoạt động với các đầu vào phổ biến, đã biết trước) hoặc đơn giản là không hoạt động.

Khi nào MD5 vẫn phù hợp để sử dụng

  • Kiểm tra xem tệp đã tải xuống có khớp với checksum của nhà phát hành trước khi chạy hay không.
  • Tạo khóa cache có tính xác định từ một URL hoặc chuỗi truy vấn.
  • Loại bỏ trùng lặp bản ghi bằng cách băm từng bản ghi và so sánh mã băm thay vì so sánh toàn bộ văn bản.
  • Nhanh chóng kiểm tra xem hai tệp có giống hệt nhau từng byte hay không mà không cần so sánh trực tiếp.

Khi nào nên tránh hoàn toàn MD5

Không bao giờ sử dụng MD5 cho mật khẩu, chữ ký số, hoặc bất cứ điều gì mà kẻ tấn công có thể hưởng lợi từ một sự trùng khớp giả mạo. Vì các va chạm có thể được tạo ra một cách cố ý, và vì các mã băm MD5 không có salt của các đầu vào ngắn hoặc phổ biến có thể bị đảo ngược thông qua bảng tra cứu, MD5 không cung cấp bảo mật thực sự trong các bối cảnh này. Đối với mật khẩu, hãy dùng bcrypt, scrypt hoặc Argon2. Đối với chữ ký và tính toàn vẹn nơi khả năng chống giả mạo là quan trọng, hãy dùng SHA-256 hoặc thuật toán mạnh hơn.

Câu Hỏi Thường Gặp

Tôi có thể giải mã một mã băm MD5 để lấy lại văn bản gốc không?

Không — việc băm vốn được thiết kế một chiều; không thể tính ra văn bản gốc từ mã băm. Các trang "giải mã MD5" chỉ đơn giản là tra cứu mã băm trong các bảng khổng lồ đã tính sẵn cho các đầu vào phổ biến, vì vậy các đầu vào độc đáo hoặc dài không thể được khôi phục.

Vậy các trang "giải mã MD5" thực sự làm gì?

Chúng duy trì các cơ sở dữ liệu khổng lồ ánh xạ các từ phổ biến, tên và mật khẩu bị rò rỉ với mã băm MD5 tương ứng, sau đó thực hiện tra cứu. Nếu văn bản gốc của bạn không có trong cơ sở dữ liệu của họ — điều này rất có thể xảy ra với bất kỳ nội dung nào không quá đơn giản — họ đơn giản là không trả về kết quả nào.

MD5 có an toàn để lưu trữ mật khẩu không?

Không, hoàn toàn không. MD5 có thể bị brute-force nhanh chóng và có các kiểu tấn công va chạm đã biết, và việc "giải mã" bằng bảng tra cứu chính là kiểu tấn công phá vỡ việc lưu trữ mật khẩu MD5 không có salt. Hãy dùng bcrypt, scrypt hoặc Argon2 cho mật khẩu.

Tại sao cùng một văn bản lại cho ra mã băm khác nhau trên công cụ khác?

Thường là do những khác biệt vô hình: một dấu xuống dòng hoặc khoảng trắng ở cuối, ký tự xuống dòng khác nhau (\r\n so với \n), hoặc bảng mã văn bản khác nhau. Đầu vào giống hệt nhau từng byte luôn cho ra mã băm MD5 giống hệt nhau.

Văn bản của tôi có được gửi lên máy chủ để băm không?

Không. Mã băm MD5 được tính bằng JavaScript ngay trong trình duyệt của bạn — văn bản của bạn không bao giờ được truyền đi bất cứ đâu.

Công Cụ Liên Quan