Trình xác thực số thẻ — kiểm tra Luhn và thương hiệu
Lập trìnhTrình xác thực số thẻ chạy checksum Luhn (ISO/IEC 7812) trên một số thẻ ngay trong trình duyệt của bạn và nhận diện thương hiệu, như Visa hay Mastercard, từ các chữ số đầu (IIN/BIN).
Trang này được dịch với sự hỗ trợ của AI và chưa được chuyên gia rà soát. Hãy kiểm tra các nguồn trích dẫn trước khi dùng cho quyết định quan trọng.
Giới thiệu
Chữ số cuối của một số thẻ là chữ số kiểm tra Luhn được thiết kế để bắt lỗi gõ nhầm: bắt đầu từ chữ số thứ hai bên phải, nhân đôi mỗi chữ số cách một (trừ đi 9 khi kết quả vượt quá 9); nếu tổng là bội số của 10 thì số đó hợp lệ về mặt cấu trúc. Vài chữ số đầu (IIN/BIN) nhận diện mạng phát hành, và đó là cách phát hiện thương hiệu. Công cụ này dùng để xây dựng và kiểm thử các biểu mẫu thanh toán — số thẻ không bao giờ được gửi đi đâu, và việc vượt qua Luhn không có nghĩa là một tấm thẻ có thật hay đang hoạt động.
Cách dùng
- 1Nhập số thẻ (cho phép khoảng trắng và dấu gạch nối).
- 2Nhấn xác thực.
- 3Đọc kết quả Luhn, thương hiệu được phát hiện và số chữ số.
Tham khảo
| Thương hiệu | Bắt đầu bằng | Số chữ số |
|---|---|---|
| Visa | 4 | 13, 16, 19 |
| Mastercard | 51–55, 2221–2720 | 16 |
| American Express | 34, 37 | 15 |
| JCB | 3528–3589 | 16–19 |
| Discover | 6011, 644–649, 65 | 16–19 |
| UnionPay | 62 | 16–19 |
Nguồn và tiêu chuẩn
Câu hỏi thường gặp
Số thẻ tôi nhập được gửi đi đâu?
Không đi đâu cả. Việc tính Luhn và phát hiện thương hiệu chạy hoàn toàn trên trình duyệt của bạn và số thẻ không bao giờ được lưu lại. Dù vậy, hãy ưu tiên các số kiểm thử được công bố thay vì số thẻ thật.
Vượt qua Luhn có nghĩa là thẻ có thật không?
Không. Luhn chỉ là một phép kiểm tra cấu trúc để bắt lỗi gõ nhầm. Việc một tấm thẻ có được phát hành, còn hạn hay có tiền hay không chỉ có thể được xác nhận bởi mạng thẻ và đơn vị phát hành.
Có số thẻ kiểm thử cho phát triển không?
Có. Hãy dùng các số kiểm thử được các nhà cung cấp thanh toán công bố — ví dụ 4111 1111 1111 1111 (định dạng Visa) vượt qua phép kiểm tra Luhn.