Tài khoản hosting shop.tencongty.vn bị chiếm quyền kiểm soát — và sau khi điều tra, nguyên nhân hóa ra đơn giản đến ngượng: mật khẩu là Admin@2023. Đây là loại mật khẩu xuất hiện trong top 10.000 danh sách bị lộ, và bất kỳ công cụ brute-force nào cũng thử nó trong vài giây đầu tiên.

Mật khẩu "mạnh" không có nghĩa là khó nhớ hay rối mắt — nó có nghĩa là đủ ngẫu nhiên, đủ dài, và không bị tái dùng. Điều đáng buồn là đa số mật khẩu người đặt thủ công đều thất bại ở ít nhất một trong ba tiêu chí đó. Bài này sẽ hướng dẫn bạn sinh mật khẩu đúng chuẩn và đánh giá những gì mình đang dùng có thực sự mạnh không.

Kiểm tra mật khẩu đang dùng: dán mật khẩu vào công cụ kiểm tra độ mạnh mật khẩu, bạn sẽ thấy ngay điểm entropy và thời gian crack ước tính. Công cụ chạy hoàn toàn trên trình duyệt — không gửi mật khẩu lên server.

Mật khẩu mạnh là mật khẩu như thế nào?

Độ mạnh của một mật khẩu phụ thuộc vào entropy — tức lượng "không thể đoán" của nó. Entropy càng cao, crack càng tốn thời gian và tài nguyên. Hai yếu tố chính quyết định entropy:

  1. Độ dài — tăng độ dài là cách tăng entropy hiệu quả nhất; mỗi ký tự thêm vào nhân bội không gian tìm kiếm.

  2. Không gian ký tự — dùng chữ hoa + chữ thường + số + ký hiệu thì không gian lớn hơn nhiều so với chỉ dùng chữ thường.

Ví dụ mật khẩuĐộ dàiLoại ký tựThời gian crack ước tính (offline)congty202410Chữ + sốVài giâyAdmin@2024!11Hỗn hợpVài phút đến vài giờkX9!mQvL#2pR13Hỗn hợp ngẫu nhiênHàng trăm nămTr-7@bP$Nq2mWx!16Hỗn hợp ngẫu nhiênThực tế không crack được

Ngoài ra, tái dùng mật khẩu là rủi ro ngầm nguy hiểm nhất: dù mật khẩu mạnh đến đâu, nếu bạn dùng cùng một mật khẩu cho nhiều hệ thống, một hệ thống bị lộ thì tất cả đều mất theo.

4 bước tạo và bảo vệ mật khẩu đúng chuẩn

Bước 1 — Sinh mật khẩu ngẫu nhiên thực sự

Não người rất kém ngẫu nhiên — chúng ta hay dùng ngày sinh, tên riêng hay pattern dễ đoán như Pass@word1. Cách tốt nhất là để máy tính sinh mật khẩu hoàn toàn ngẫu nhiên.

👉 Sinh mật khẩu: công cụ tạo mật khẩu mạnh (chọn độ dài, loại ký tự, sinh nhiều lựa chọn cùng lúc).

Khuyến nghị cho từng trường hợp:

  • Tài khoản admin/hosting/VPS: ít nhất 16 ký tự, dùng cả chữ hoa + chữ thường + số + ký hiệu.

  • Tài khoản người dùng thông thường: 12–16 ký tự là đủ mạnh cho hầu hết hệ thống.

  • API key hoặc service account: sinh 32–64 ký tự hex hoặc base64 để đảm bảo entropy tối đa.

Lỗi hay gặp:

  • Thay một vài ký tự để "cá nhân hóa": lấy mật khẩu sinh ra rồi thêm tên công ty hoặc năm vào đầu/cuối khiến entropy thực tế thấp hơn vẻ ngoài — attacker biết trick này.

  • Lưu mật khẩu mới vào file text hoặc sticky note: bước tạo mật khẩu mạnh bị vô hiệu ngay nếu lưu trữ không an toàn. Dùng password manager để lưu.

Bước 2 — Kiểm tra độ mạnh của mật khẩu đang dùng

Nếu bạn muốn đánh giá mật khẩu đang dùng cho một hệ thống cũ, hãy đo entropy trước khi quyết định có cần thay không.

👉 Đo độ mạnh: công cụ kiểm tra độ mạnh mật khẩu (xem entropy bit, pattern phổ biến, thời gian crack ước tính).

Ví dụ: mật khẩu BKNShosting2024! trông có vẻ "phức tạp" nhưng công cụ có thể phát hiện nó theo pattern đoán được (từ thường + năm + ký hiệu) — entropy thực tế thấp hơn nhiều so với số ký tự gợi ý.

Lỗi hay gặp:

  • Tin vào thanh "điểm mạnh" của website: nhiều trang đăng ký chỉ kiểm tra độ dài và có số/ký hiệu không, không tính pattern. Công cụ chuyên dụng đánh giá chính xác hơn.

  • Dán mật khẩu production vào công cụ third-party lạ: công cụ trong bài chạy trên trình duyệt và không gửi lên server, nhưng đây là nguyên tắc cần giữ với mọi công cụ bên ngoài.

Bước 3 — Tạo hash để kiểm tra hoặc lưu trữ an toàn

Khi phát triển ứng dụng, mật khẩu không bao giờ được lưu dưới dạng plaintext. Hash là dạng "dấu vân tay" một chiều — từ hash không thể suy ngược lại mật khẩu gốc.

👉 Tạo hash: công cụ tạo hash (MD5, SHA-1, SHA-256, SHA-512).

Lưu ý quan trọng: MD5 và SHA-1 không dùng để lưu mật khẩu — chúng bị crack bằng rainbow table vì được thiết kế chạy rất nhanh. Dùng chúng cho checksum file hoặc xác minh tính toàn vẹn dữ liệu. Để lưu mật khẩu, dùng Bước 4.

Lỗi hay gặp:

  • Hash SHA-256 mật khẩu không salt: nếu không thêm salt (chuỗi ngẫu nhiên), hai người dùng có cùng mật khẩu sẽ ra cùng hash — kẻ tấn công có thể dùng bảng tra sẵn (rainbow table) để tìm ngược.

Bước 4 — Dùng bcrypt để lưu mật khẩu trong hệ thống

Bcrypt là thuật toán chuyên dùng cho lưu mật khẩu: có salt tự động, có cost factor điều chỉnh được, và được thiết kế cố tình chậm để brute force tốn tài nguyên.

👉 Tạo bcrypt hash: công cụ tạo bcrypt hash (chọn cost factor, sinh và xác minh bcrypt hash).

Ví dụ: với cost factor 12 (mức khuyến nghị hiện tại), bcrypt mất khoảng 250–300 ms để tạo một hash — đủ chậm để brute force bất khả thi trên quy mô lớn, nhưng vẫn nhanh đủ để người dùng không cảm thấy lag khi đăng nhập.

Lỗi hay gặp:

  • Dùng cost factor quá thấp (4–6): chạy quá nhanh, mất lợi thế chống brute force. Cost factor 10–12 là điểm cân bằng tốt cho hầu hết ứng dụng hiện tại.

  • Tưởng phải lưu salt riêng: bcrypt output đã bao gồm salt trong chuỗi kết quả — không cần lưu thêm cột salt riêng trong database.

Có mật khẩu mạnh rồi thì quản lý thế nào?

Mật khẩu mạnh thường quá dài và ngẫu nhiên để nhớ bằng đầu — đó là chuyện bình thường và thậm chí là dấu hiệu tốt. Giải pháp thực tế:

  • Password manager: Bitwarden (mã nguồn mở, miễn phí), 1Password, hay KeePass (offline). Bạn chỉ cần nhớ một master password thật mạnh, còn lại để manager lo.

  • Đổi mật khẩu khi có sự cố: không cần đổi định kỳ mù quáng nếu mật khẩu đã mạnh và chưa bị lộ — đổi khi có dấu hiệu rò rỉ, khi nhân viên cũ nghỉ việc, hoặc sau khi hệ thống liên quan bị breach.

  • Bật 2FA song song: mật khẩu mạnh kết hợp 2FA (TOTP) là bộ đôi bảo vệ tốt nhất hiện tại — ngay cả khi mật khẩu bị lộ, vẫn còn lớp thứ hai.

Câu hỏi thường gặp (FAQ)

Mật khẩu cần dài bao nhiêu ký tự là đủ? Với tài khoản admin/hosting quan trọng, 16 ký tự ngẫu nhiên là mức tối thiểu tốt. Nếu dùng password manager để sinh và lưu thì cứ đặt 20–32 ký tự cho chắc — bạn không cần nhớ anyway.

Tôi có thể dùng cụm từ dài thay cho mật khẩu phức tạp không? Được, còn gọi là passphrase. Ví dụ: bau-troi-xanh-hosting-2026 dài và entropy khá cao. Điều kiện là cụm từ phải ngẫu nhiên (không phải câu quen, trích dẫn nổi tiếng hay tên phim) và không bị tái dùng.

Vì sao không nên lưu mật khẩu bằng MD5 hay SHA-256? Vì chúng được thiết kế để chạy nhanh — bộ xử lý hiện đại có thể tính hàng tỉ MD5 hash mỗi giây với GPU. Bcrypt, scrypt hay Argon2 được thiết kế cố tình chậm để làm brute force không khả thi về mặt kinh tế.

Công cụ tạo mật khẩu online có an toàn không? Công cụ của BKNS sinh mật khẩu ngay trên trình duyệt bằng crypto.getRandomValues() — API ngẫu nhiên an toàn của trình duyệt, không gửi mật khẩu về server. Bạn có thể xác minh bằng cách tắt mạng rồi thử lại, vẫn sinh được bình thường.


BKNS Tools — bộ công cụ bảo mật miễn phí cho admin và developer Việt. Tạo mật khẩu mạnh · Kiểm tra độ mạnh · Tạo hash · Bcrypt hash — không cần đăng nhập.