Một GPU RTX 5090 thử được hơn 200 tỷ mật khẩu MD5 mỗi giây, đủ để dò hết mọi mật khẩu 8 ký tự ngẫu nhiên trong khoảng 8 giờ, và mở gần một nửa mật khẩu do con người đặt chỉ trong chưa đầy một phút.
Ngay cả khi tin tặc lấy được cơ sở dữ liệu của một website, chúng không nắm trong tay một dòng mật khẩu mà người dùng sử dụng. Bên trong số dữ liệu đó là một loạt những chuỗi ký tự lộn xộn, chẳng hạn 5f4dcc3b5aa765d61d8327deb882cf99. Theo thuật ngữ chuyên môn, chuỗi ký tự vô nghĩa bạn vừa đọc là bản băm (hash) của mật khẩu.
Không khác gì cách một chiếc máy băm thịt vằm nhỏ tảng thịt to thành những mảnh vụn li ti, mật khẩu được xử lý qua quá trình băm sẽ biến thành một chuỗi ký tự lộn xộn có độ dài cố định, và cùng một mật khẩu thì lần nào cũng ra đúng chuỗi đó. Không ai có thể ghép thịt băm lại thành miếng thịt nguyên vẹn, và nguyên lý này cũng áp dụng cho bản băm của một mật khẩu. Mỗi khi bạn lưu mật khẩu, website sẽ tiến hành băm nhỏ mật khẩu của bạn và cất đi chính những phần băm đó. Khi bạn đăng nhập, website một lần nữa băm chuỗi ký tự bạn nhập vào, so hai bản băm với nhau, và cho phép bạn login nếu hai bản trùng khớp.
Chúng ta thường nghĩ thế là an toàn, vì quá trình “ghép thịt băm” vẫn được cho là bất khả thi. Thực tế, tin tặc không tiến hành ghép ngược lại bản băm thành “miếng thịt” đâu. Chúng sẽ chuẩn bị vô số mật khẩu, đưa những chuỗi ký tự này vào “băm”, rồi so sánh những bản băm sinh ra với số dữ liệu mà chúng lấy được.
Với sự hỗ trợ của máy tính, quy trình thử-loại này nhanh tới khó tin. Thử nghiệm của Specops Software (tháng 4/2026) cho thấy một GPU RTX 5090 thử được khoảng 219,5 tỷ mật khẩu mỗi giây nếu chúng được băm bằng MD5. Tuy rằng thuật toán MD5 không còn mới, nhưng chúng vẫn được tận dụng ở nhiều nơi: dữ liệu của dịch vụ nhạc Raaga, tương ứng khoảng 10 triệu tài khoản, bị rao bán hồi tháng 12/2025 và mật khẩu trong đó được cất bằng MD5.

Tin tặc hack mật khẩu như thế nào?
Nếu dùng máy móc, cách đơn giản nhất là dò mù (brute force): thử lần lượt mọi tổ hợp có thể, từ đầu tới cuối. Hãy nghĩ tới chiếc ổ khóa số bốn chữ số. Mỗi bánh xe có 10 con số từ 0 tới 9, nên chúng ta có tổng cộng 10 × 10 × 10 × 10 = 10.000 tổ hợp. Một người kiên nhẫn, mỗi giây thử một số, sẽ mất gần 3 tiếng đồng hồ để thử hết các trường hợp. Nhưng với một cỗ máy, công việc này sẽ diễn ra trong chớp mắt.

Mật khẩu cũng là một ổ khóa tương tự, chỉ khác ở số bánh xe và số lựa chọn trên mỗi bánh. Bàn phím tiếng Anh cho ra 95 ký tự in được: 26 chữ thường, 26 chữ hoa, 10 chữ số và 33 ký hiệu (kể cả dấu cách). Mỗi ký tự thêm vào nhân số tổ hợp lên 95 lần. Với 8 ký tự, ta có 95 mũ 8, tức khoảng 6,6 triệu tỷ tổ hợp.
Chia con số đó cho 219,5 tỷ lần thử mỗi giây, ta được khoảng 8,4 giờ, là thời gian tối đa để máy thử hết mọi mật khẩu 8 ký tự; trung bình máy tìm ra mật khẩu của bạn sau chừng một nửa thời gian ấy. Bạn có thể tự kéo thời gian trong khối bên dưới để xem máy đi tới đâu.
Mật khẩu 8 chữ thường chỉ có khoảng 209 tỷ tổ hợp, máy duyệt hết trong chưa tới một giây. Dùng đủ bộ ký tự thì lâu hơn khoảng 31.800 lần. Thêm chữ hoa, số và ký hiệu có tác dụng, nhưng nếu mật khẩu vẫn chỉ dài 8 ký tự, kết quả cuối cùng vẫn chỉ là vài giờ.
Thực tế mà nói, mật khẩu của bạn lộ theo cách nào?
Câu chuyện thật còn tệ hơn, vì chúng ta không đặt mật khẩu một cách ngẫu nhiên. Tin tặc biết điều đó nên không thử theo thứ tự abc. Họ bắt đầu bằng những mật khẩu phổ biến nhất, rồi tới các biến thể quen thuộc: viết hoa chữ đầu, đổi a thành @, đổi o thành 0, thêm 123 hoặc một năm vào cuối.
Kaspersky hiểu rõ điều đó và tiến hành thử nghiệm. Họ lấy 231 triệu mật khẩu thật từ các vụ rò rỉ giai đoạn 2023 tới 2026, băm bằng MD5, rồi cho một card RTX 5090 bẻ khóa. Kết quả: 48% mật khẩu bị mở trong chưa đầy một phút, và 60% trong chưa đầy một giờ. Cũng trong một phút đó, kiểu dò mù ở trên mới duyệt được khoảng 0,2% mọi chuỗi 8 ký tự đủ bộ. Hai con số không cùng mẫu số, nhưng cho thấy nếu máy biết định hướng thử mật khẩu dựa trên thói quen của người dùng, thì tốc độ phá mật khẩu nhanh vô cùng.
Thói quen càng dễ đoán, thì mật khẩu càng dễ phá. Cũng theo Kaspersky, hơn một nửa mật khẩu (53%) kết thúc bằng chữ số, và cứ 8 mật khẩu thì 1 chứa chuỗi số giống một năm từ 1950 tới 2030 (12%). Vì vậy một từ quen thuộc cộng đuôi số chưa đủ phức tạp để mật khẩu của bạn an toàn.
Thử xem mật khẩu bạn đặt khó phá cỡ nào?
Khối dưới đây là một máy ước tính đơn giản chạy hoàn toàn trong trình duyệt của bạn, không gửi gì đi đâu cả. Phương thức hoạt động của nó mô phỏng đơn giản cách tin tặc làm việc: tra danh sách 10.000 mật khẩu phổ biến, tìm từ quen thuộc cộng biến thể, dãy phím, số giống năm hay ngày tháng, và chỉ khi hết cách mới dò mù. Hãy gõ thử một mật khẩu 8 ký tự theo kiểu bạn hay đặt, nhưng lưu ý đừng gõ mật khẩu thật bạn đang dùng nhé.
Có hai điều đáng để ý. Đầu tiên, những mật khẩu trông phức tạp như P@ssw0rd bị phá gần như ngay lập tức, vì thay a bằng @ và o bằng 0 là thứ ngôn ngữ đại trà. Và thứ hai, ngay cả một chuỗi 8 ký tự ngẫu nhiên hoàn toàn cũng chỉ an toàn trong khoảng 8 giờ trước MD5.
Website giữ mật khẩu thế nào cho an toàn?
Mọi con số ở trên giả định website lưu trữ mật khẩu bằng thuật toán MD5. Nếu họ dùng bcrypt, một thuật toán cố tình làm chậm, bức tranh toàn cảnh khả quan hơn rất nhiều. Theo Hive Systems, 16 card RTX 5090 chỉ thử được khoảng 138.675 bản băm bcrypt (cost 10) mỗi giây, tức là mỗi GPU chỉ thử được khoảng 8.700 mật khẩu. Cùng một mật khẩu 8 ký tự ngẫu nhiên đủ bộ, nhưng một chiếc RTX 5090 cần khoảng 24.000 năm thay vì 8,4 giờ.
Thực tế thì, người dùng không biết website đã chọn thuật toán nào. Tiêu chuẩn mới của NIST (Viện Tiêu chuẩn và Công nghệ Mỹ) bắt buộc website băm mật khẩu kèm muối (một thành phần ngẫu nhiên giúp mật khẩu sau khi băm trở nên khó phá hơn) bằng một thuật toán băm mật khẩu phù hợp. Dẫu vậy, không phải nhà cung cấp dịch vụ nào cũng làm đúng tiêu chuẩn, nên tốt nhất là người dùng “cẩn tắc vô áy náy”, đặt ra những mật khẩu khó phá, ngay cả khi chúng … khó nhớ.
Vậy đặt mật khẩu thế nào cho đúng?
Công thức dưới đây bám theo NIST SP 800-63B-4, bản chính thức ra mắt tháng 7/2025, cùng khuyến nghị của tổ chức Electronic Frontier Foundation (EFF).
Một: dài thay vì rối. NIST yêu cầu tối thiểu 15 ký tự khi mật khẩu là yếu tố đăng nhập duy nhất, và chỉ 8 ký tự khi có yếu tố thứ hai đi kèm (ví dụ như bảo mật hai lớp).
Hai: ngẫu nhiên thật sự. Đó có thể là một cụm sáu từ chọn ngẫu nhiên từ danh sách 7.776 từ (EFF khuyên tối thiểu sáu từ), hoặc một chuỗi ngẫu nhiên do trình quản lý mật khẩu tạo ra. Ngẫu nhiên ở đây đồng nghĩa với việc để một cỗ máy, một phần mềm, một dịch vụ nghĩ ra mật khẩu cho bạn, thay vì ta tự đi theo lối mòn tư duy.
Ba: đặt mật khẩu cho mỗi tài khoản, mỗi trang đăng nhập, và hãy giao phó trách nhiệm lưu trữ mật khẩu cho một bộ nhớ khác. NIST yêu cầu website phải cho phép dùng trình quản lý mật khẩu và tự điền. Bên cạnh đó, việc đa dạng hóa mật khẩu sẽ giúp bạn không lộ hết tất cả tài khoản khi một tài khoản đã bại lộ.
Bốn: bật xác thực hai lớp ở những tài khoản quan trọng. Và đừng tin vào lời khuyên cũ: NIST cấm website ép quy tắc ký tự bắt buộc (phải có chữ hoa, ký hiệu...) hoặc ép đổi mật khẩu định kỳ.
Nhưng dù cẩn trọng tới đâu, vào một ngày xấu trời nào đó, dữ liệu vẫn có thể bị rò rỉ, và tin tặc sẽ nắm trong tay kho bản băm của vô vàn mật khẩu. Điều chúng ta có thể chủ động làm là tạo ra thật nhiều “bánh xe chữ số” cho cái khóa của mình.
* Tốc độ dò: Specops Software (đăng trên BleepingComputer, 8/4/2026), hashcat, một card RTX 5090: MD5 219,5 GH/s, bcrypt 304,8 kH/s (bài không nêu cost). Với bcrypt cost 10, bài dùng số của Hive Systems (Password Table 2026): 138.675 H/s cho 16 card RTX 5090, chia đều thành khoảng 8.667 H/s mỗi card (cách tính của tòa soạn).
* Mật khẩu thật: Kaspersky (7/5/2026), 231 triệu mật khẩu từ các vụ rò rỉ 2023 tới 2026, băm MD5, bẻ bằng một card RTX 5090. Vụ Raaga: Have I Been Pwned.
* Tiêu chuẩn và khuyến nghị: NIST SP 800-63B-4 (31/7/2025); danh sách 7.776 từ và khuyến nghị sáu từ: Electronic Frontier Foundation (EFF). Danh sách 10.000 mật khẩu phổ biến dùng cho máy ước tính: SecLists của Daniel Miessler (giấy phép MIT), cộng một số từ tiếng Việt thường gặp do tòa soạn thêm.
* Cách tính: thời gian bằng số tổ hợp chia cho tốc độ dò của 1 card, ghi theo mức tối đa (dò hết). Máy ước tính ở khối 03 là mô hình đơn giản, chỉ biết 10.000 mật khẩu phổ biến, nên kết quả mạnh chỉ là cận trên. Các ngưỡng nhận xét ở khối 03 và 04 do tòa soạn đặt.