Kiểm tra mật khẩu mạnh hay yếu
Chấm điểm mật khẩu 0–4 kèm thời gian bẻ khoá ước tính và gợi ý, kiểm tra mật khẩu có trong các vụ rò rỉ dữ liệu mà không cần gửi mật khẩu đi (k-anonymity).
Kết quả
Bấm “Chạy” để xem kết quả.
API kiểm tra mật khẩu ước tính mật khẩu khó đoán đến đâu. Ngoài độ dài và loại ký tự, API tìm những gì kẻ tấn công thử trước tiên: các mật khẩu phổ biến nhất (kể cả kiểu Việt Nam như matkhau, anhyeuem), mật khẩu phổ biến thêm vài chữ số, chuỗi bàn phím và bảng chữ cái (qwerty, 1234, abcd), ký tự lặp, thay chữ bằng ký hiệu (P@ssw0rd) và ngày tháng, năm sinh. Kết quả gồm điểm từ 0 (rất yếu) đến 4 (rất mạnh), entropy ước tính, thời gian bẻ khoá theo bốn kịch bản và cảnh báo, gợi ý để hiển thị cạnh form đăng ký.
API còn đối chiếu với cơ sở dữ liệu Have I Been Pwned gồm hơn 900 triệu mật khẩu đã bị lộ. Chỉ 5 ký tự đầu của mã băm SHA-1 rời khỏi máy chủ của chúng tôi (tìm kiếm theo dải k-anonymity, có padding), nên cả chúng tôi lẫn HIBP đều không biết mật khẩu; mật khẩu đã bị lộ luôn bị chấm 0 điểm. Đặt breach=false để bỏ qua bước này.
Mật khẩu chỉ được xử lý trong bộ nhớ: không lưu, không ghi log, không dùng làm khoá cache. Hãy gửi trong body POST thay vì trên URL.
Dùng trong code của bạn
curl -X POST "https://apibox.io.vn/v1/password-check" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"password":"anhyeuem2024"}'const res = await fetch('https://apibox.io.vn/v1/password-check', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"password": "anhyeuem2024"
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/password-check",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"password": "anhyeuem2024"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/password-check');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"password":"anhyeuem2024"}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Tài liệu API → Nhận API key miễn phí
Hỏi đáp
Mật khẩu có bị gửi tới Have I Been Pwned không?
Không. Chỉ 5 ký tự hex đầu của mã băm SHA-1 được gửi đi; phần còn lại được so khớp ngay trên máy chủ với danh sách trả về.
Vì sao một cụm từ dài vẫn bị 0 điểm?
Vì nó đã xuất hiện trong các vụ rò rỉ (ví dụ “correct horse battery staple”). Kẻ tấn công luôn thử mật khẩu đã lộ trước, dù dài đến đâu.
Có nên bắt buộc ký tự đặc biệt không?
Độ dài quan trọng hơn. Khuyến nghị hiện nay là tối thiểu 8 (tốt hơn 12+) ký tự, không ép quy tắc thành phần và có kiểm tra rò rỉ — điều API này làm cho bạn.