← 返回工具箱
💳 测试卡号生成器

测试银行卡号生成

⚠️
🚫 仅用于开发测试,不可用于任何实际交易。本工具生成的卡号符合 Luhn 校验,但均为虚构号码,不对应任何真实账户。在真实支付场景中使用属于违法行为。
💳
点击"生成卡号"按钮开始生成测试卡号

✔️ Luhn 校验器

粘贴任意卡号,验证其是否通过 Luhn 算法校验。

📖 Luhn 算法详解

Luhn 算法(也称为"模10"算法)是一种简单的校验和公式,由 IBM 科学家 Hans Peter Luhn 于 1954 年提出。它被广泛用于验证信用卡号、身份证号等标识符的基本有效性,可以检测出单个数字输入错误以及大多数相邻数字的转置错误。

算法步骤(以卡号 4532015112830366 为例)

步骤操作说明
1从右往左,将每隔一位(偶数位,从右数第2位开始)的数字乘以2例:4×2=8, 0×2=0, 5×2=10, 1×2=2, 2×2=4…
2若乘以2后的结果 > 9,则减去910-9=1, 16-9=7 等
3将所有数字(处理后的和未处理的)相加得到一个总和
4若总和能被10整除(即总和 mod 10 = 0),则卡号有效有效卡号的总和末位为0

Luhn 算法生成校验位

生成流程:

1. 确定卡号前缀(BIN)和总长度
2. 随机填充中间位数字
3. 对前 N-1 位运行 Luhn 算法求和
4. 校验位 = (10 - (sum mod 10)) mod 10
5. 将校验位附加到末尾

主流卡种 BIN 规则

卡种BIN前缀卡号长度格式示例
Visa416位4xxx xxxx xxxx xxxx
Mastercard51–55 / 2221–272016位5xxx xxxx xxxx xxxx
American Express34 / 3715位3xxx xxxxxx xxxxx
UnionPay6216–19位62xx xxxx xxxx xxxx
JCB3528–358916位35xx xxxx xxxx xxxx

Luhn 算法能检测哪些错误?

Luhn 算法的局限性

Luhn 算法仅是一种格式校验,通过校验的卡号并不代表该卡真实存在或账户有效。真正的支付验证还需要通过发卡行的授权系统进行实时查询,包括卡号是否已开户、是否在有效期内、账户余额是否充足、3DS 验证等多重因素。

💡 开发提示:主流支付网关(如 Stripe、PayPal、Braintree)均提供官方测试卡号,建议优先使用官方文档中的测试卡号进行集成测试,以确保与真实支付流程的兼容性。本工具生成的卡号适合用于前端表单验证、Luhn 算法学习等场景。