Phát triển Web

Credit Card Validator

Kiểm tra số thẻ bằng thuật toán Luhn, xác định mạng thanh toán và độ dài. Mọi thứ được tính toán trong trình duyệt — số thẻ không được gửi đi bất kỳ đâu.

The Luhn algorithm is a checksum most payment networks append to a card number to catch accidental typing errors (one transposed or mistyped digit). This tool checks a number against Luhn and identifies the payment network from its prefix (BIN).

How to use it

Common uses

Things to keep in mind

A card passing the Luhn check doesn't mean it's active, unblocked, or even real — the check only catches obvious typing mistakes.

Card data is processed entirely in your browser and never sent anywhere, but for actual payments, always use a certified payment form (PCI DSS) rather than pasting a real card number into a third-party tool.

Bài viết về công cụ này: Thuật toán Luhn: cách kiểm tra tính đúng đắn của số thẻ

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

Kiểm tra thành công có nghĩa là thẻ thật và có tiền không?

Không — công cụ này chỉ xác minh checksum Luhn và độ dài chữ số dự kiến cho mạng được phát hiện; nó không thể cho biết thẻ có thực sự tồn tại, đang hoạt động hay có tiền hay không, vì điều đó cần liên hệ với đơn vị phát hành thẻ.

Thuật toán Luhn hoạt động như thế nào?

Nó nhân đôi mỗi chữ số thứ hai tính từ phải, cộng các chữ số của kết quả cùng với các chữ số không đổi, và kiểm tra xem tổng có phải là bội số của 10 hay không — nó bắt được hầu hết lỗi gõ phím và chữ số bị hoán đổi nhưng không phải là kiểm tra gian lận.

Số thẻ của tôi có được gửi đi đâu không?

Không, việc xác thực diễn ra hoàn toàn trong trình duyệt của bạn và số thẻ không bao giờ được truyền đi hay lưu trữ.

Mạng thanh toán (Visa, Mastercard, v.v.) được xác định từ số thẻ như thế nào?

Từ vài chữ số đầu tiên của số thẻ, gọi là BIN (Bank Identification Number) — ví dụ số thẻ Visa luôn bắt đầu bằng 4, còn Mastercard bắt đầu trong khoảng 51–55 hoặc 2221–2720; các biểu mẫu thanh toán dùng tiền tố này để xác định biểu tượng mạng ngay cả trước khi bạn nhập xong số thẻ.

BIN có thể cho biết ngân hàng nào đã phát hành thẻ không?

Một phần — 6 chữ số đầu tiên (BIN mở rộng) thường cho phép xác định không chỉ mạng thanh toán mà cả ngân hàng phát hành cụ thể và loại thẻ (ghi nợ hay tín dụng), dù để xác định chính xác ngân hàng cần đến cơ sở dữ liệu BIN chuyên dụng, chứ không chỉ riêng thuật toán Luhn.

Bài viết: Phát triển Web

HEX, RGB, HSL: vì sao có nhiều cách viết một màu đến vậy

Vì sao các nhà thiết kế thường chọn HSL thay vì HEX khi chọn sắc độ màu bằng tay.

Rút gọn CSS: điều gì thực sự bị loại bỏ khỏi tệp và vì sao

Vì sao CSS đã rút gọn hoạt động chính xác như cũ trong trình duyệt, dù trở nên khó đọc với con người.

Rút gọn JavaScript: sự khác biệt giữa rút gọn và làm rối mã

Vì sao mã đã rút gọn vẫn có thể đọc được nếu muốn, còn mã đã làm rối thì không.

Rút gọn HTML: vì sao khoảng trắng trong markup lại có ý nghĩa

Vì sao loại bỏ khoảng trắng bên trong <pre> hoặc một textarea có thể phá vỡ giao diện trang, khác với hầu hết mọi nơi khác.

Gradient CSS: linear khác gì với radial và conic

Vì sao conic-gradient phù hợp với biểu đồ tròn, còn radial-gradient tạo hiệu ứng vệt sáng.

IBAN: cấu trúc của một số tài khoản ngân hàng quốc tế

Vì sao hai chữ cái đầu tiên của IBAN là mã quốc gia, không phải một phần của số tài khoản.

Mã QR: một liên kết vừa vặn trong ô vuông điểm ảnh như thế nào

Vì sao một mã QR có logo ở giữa vẫn quét được dù một phần hoa văn bị che.

Mã vạch: Code 128 khác gì với EAN-13

Vì sao sản phẩm trên kệ hàng gần như luôn dùng EAN-13 thay vì Code 128.

Ảnh placeholder: vì sao ảnh giả lại quan trọng trong quá trình phát triển

Vì sao các nhà phát triển cố tình chèn hình chữ nhật xám thay vì ảnh thật khi một bố cục vẫn đang được xây dựng.