粘贴任意卡号,验证其是否通过 Luhn 算法校验。
Luhn 算法(也称为"模10"算法)是一种简单的校验和公式,由 IBM 科学家 Hans Peter Luhn 于 1954 年提出。它被广泛用于验证信用卡号、身份证号等标识符的基本有效性,可以检测出单个数字输入错误以及大多数相邻数字的转置错误。
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 从右往左,将每隔一位(偶数位,从右数第2位开始)的数字乘以2 | 例:4×2=8, 0×2=0, 5×2=10, 1×2=2, 2×2=4… |
| 2 | 若乘以2后的结果 > 9,则减去9 | 10-9=1, 16-9=7 等 |
| 3 | 将所有数字(处理后的和未处理的)相加 | 得到一个总和 |
| 4 | 若总和能被10整除(即总和 mod 10 = 0),则卡号有效 | 有效卡号的总和末位为0 |
| 卡种 | BIN前缀 | 卡号长度 | 格式示例 |
|---|---|---|---|
| Visa | 4 | 16位 | 4xxx xxxx xxxx xxxx |
| Mastercard | 51–55 / 2221–2720 | 16位 | 5xxx xxxx xxxx xxxx |
| American Express | 34 / 37 | 15位 | 3xxx xxxxxx xxxxx |
| UnionPay | 62 | 16–19位 | 62xx xxxx xxxx xxxx |
| JCB | 3528–3589 | 16位 | 35xx xxxx xxxx xxxx |
Luhn 算法仅是一种格式校验,通过校验的卡号并不代表该卡真实存在或账户有效。真正的支付验证还需要通过发卡行的授权系统进行实时查询,包括卡号是否已开户、是否在有效期内、账户余额是否充足、3DS 验证等多重因素。