Cách sử dụng
- Nhập hoặc dán văn bản, chuyển Đầu vào dạng sang Hex để nhập byte hex, hoặc nhấp Mở tệp để băm chính xác các byte của một tệp.
- Giữ Bảng mã ở UTF-8, trừ khi mã băm gốc được tính từ văn bản dùng một bảng mã khác.
- Ở mục Đầu ra dạng, chọn hex (chữ thường), HEX (chữ hoa) hoặc Base64.
- Để kiểm tra tệp tải về, hãy dán giá trị MD5 được công bố vào ô So sánh với và xem có hiện Khớp hay không.
MD5 là gì?
MD5 (Message-Digest Algorithm 5) do Ronald Rivest thiết kế và được công bố năm 1992 dưới dạng RFC 1321. Thuật toán đọc dữ liệu đầu vào theo từng khối 512 bit và tạo ra giá trị băm dài 128 bit, thường được viết thành 32 ký tự thập lục phân hoặc 24 ký tự Base64. Cùng một đầu vào luôn cho ra cùng một giá trị băm, còn chỉ cần thay đổi một bit của đầu vào là khoảng một nửa số bit đầu ra thay đổi theo.
Băm là quá trình một chiều: không có khóa và không có cách nào "giải mã" một mã băm MD5 để lấy lại đầu vào. Các trang web tự nhận có thể đảo ngược MD5 thực chất chỉ tra mã băm trong những bảng khổng lồ chứa giá trị băm của các từ thông dụng và mật khẩu bị rò rỉ, vì vậy mã băm MD5 không có salt của một mật khẩu ngắn thường bị tìm ra chỉ trong vài giây.
MD5 có còn an toàn không?
Không, nếu phải đối mặt với kẻ tấn công. Năm 2004, Xiaoyun Wang (Vương Tiểu Vân) và các cộng sự công bố những va chạm có thể tạo ra trong thực tế: hai đầu vào khác nhau nhưng có cùng mã băm MD5. Tiếp theo là các va chạm tiền tố chọn trước (chosen-prefix): năm 2008, các nhà nghiên cứu dùng một va chạm như vậy để tạo ra một chứng chỉ CA giả mạo, và năm 2012, phần mềm độc hại Flame dùng kỹ thuật này để giả mạo một chứng chỉ, khiến mã của nó trông như được Microsoft ký. Ngày nay, một máy tính xách tay bình thường tìm ra va chạm MD5 chỉ trong vài giây, và RFC 6151 khẳng định MD5 không còn được chấp nhận ở những nơi cần khả năng chống va chạm, chẳng hạn như chữ ký số.
MD5 vẫn dùng tốt làm tổng kiểm tra để phát hiện hư hỏng ngẫu nhiên, như tệp tải về không đầy đủ hoặc một bit bị lật trên ổ đĩa, cũng như làm khóa bộ nhớ đệm hay để loại bỏ trùng lặp trong dữ liệu đáng tin cậy. Khi tệp hoặc tổng kiểm tra của nó có thể đến từ kẻ tấn công, hãy dùng SHA-256.
Hex, Base64 và mã băm không khớp
MD5 thường được in ở dạng hex, đúng như kết quả mà md5sum xuất ra. Một số giao thức lại gửi 16 byte thô ở dạng Base64, ví dụ header HTTP Content-MD5 mà các API lưu trữ đám mây như Amazon S3 sử dụng. Hãy chọn Base64 ở mục Đầu ra dạng, hoặc chuyển đổi một giá trị có sẵn bằng Hex sang Base64.
Nếu mã băm MD5 của bạn khác với kết quả của một công cụ khác thì các byte đầu vào đã khác nhau. Nguyên nhân thường gặp là ký tự xuống dòng ở cuối, ký tự xuống dòng kiểu Windows hoặc một bảng mã khác: "café" dài 5 byte trong UTF-8 nhưng chỉ 4 byte trong ISO-8859-1, nên hai mã băm chẳng có điểm gì chung.
$ echo "hello" | md5sum # băm "hello\n"
b1946ac92492d2347c6235b4d2611184 -
$ printf 'hello' | md5sum # băm "hello"
5d41402abc4b2a76b9719d911017c592 -
MD5 trên dòng lệnh và trong mã nguồn
md5sum file.iso # Linux
md5 file.iso # macOS
certutil -hashfile file.iso MD5 # Windows
Get-FileHash file.iso -Algorithm MD5 # PowerShell
# Python
import hashlib
hashlib.md5('hello'.encode('utf-8')).hexdigest()
// Node.js
require('crypto').createHash('md5').update('hello', 'utf8').digest('hex')
Web Crypto API tích hợp sẵn trong trình duyệt không hỗ trợ MD5, nên trang này tính MD5 bằng JavaScript ngay trên thiết bị của bạn; không có gì được tải lên. Bảng Tất cả thuật toán bên dưới kết quả hiển thị SHA-1, SHA-256, SHA-384, SHA-512, CRC-32 và CRC-32C của cùng đầu vào.
Ví dụ
| Đầu vào (UTF-8) | MD5 |
|---|---|
Hello, World! | 65a8e27d8879283831b664bd8b7f0ad4 |
Base64.is | 2e3c0e8b828164a8db7f62146ca87e14 |
你好 | 7eca689f0d3389d9dea66ae112e5cfd7 |
Câu hỏi thường gặp
Mã băm MD5 có giải mã được không?
MD5 có đủ tốt để kiểm tra tệp tải về không?
MD5 phát hiện hư hỏng ngẫu nhiên một cách đáng tin cậy. Tuy nhiên, vì tạo va chạm rất rẻ, người chuẩn bị sẵn một tệp từ trước có thể tạo ra tệp thứ hai, khác nội dung nhưng có cùng mã băm MD5. Với những tệp tải về liên quan đến bảo mật, hãy kiểm tra mã băm SHA-256 lấy từ nguồn đáng tin cậy hoặc kiểm tra chữ ký số.
Mã băm MD5 dài bao nhiêu?
==. Một chuỗi hex dài 32 ký tự cũng có thể là mã băm MD4 hoặc NTLM; công cụ nhận dạng mã băm sẽ liệt kê các khả năng.Có thể tính MD5 của tệp lớn không?
md5sum hoặc certutil.