什么是Luhn算法?
Luhn算法(又称模10算法)是一种简单的校验和算法,用于验证各种标识号码的有效性。几乎所有信用卡、借记卡都使用Luhn算法。
算法步骤
- 从右到左,对偶数位(倒数第2、4、6...位)的数字乘以2
- 如果乘积大于9,则减去9(或各位相加)
- 将所有数字相加
- 如果总和能被10整除,则卡号有效
示例演示
卡号:7992 7398 713
| 位置 | 原数字 | 操作 | 结果 |
|---|---|---|---|
| 奇数位(7,2,3,8,1,3) | — | 保持不变 | 7+2+3+8+1+3 = 24 |
| 偶数位(9,9,7,9,7) | — | 乘以2(>9减9) | 9+9+5+9+5 = 37 |
总和:24 + 37 = 61,61 ÷ 10 余 1 → 无效
JavaScript实现
function luhnCheck(num) {
let sum = 0;
let alt = false;
for (let i = num.length - 1; i >= 0; i--) {
let n = parseInt(num[i], 10);
if (alt) {
n *= 2;
if (n > 9) n -= 9;
}
sum += n;
alt = !alt;
}
return sum % 10 === 0;
}
银行卡号前缀识别
| 卡组织 | 前缀规则 | 长度 |
|---|---|---|
| Visa | 以4开头 | 16位 |
| Mastercard | 以51-55或2221-2720开头 | 16位 |
| 银联 | 以62开头 | 16-19位 |
| AMEX | 以34或37开头 | 15位 |
在线信用卡号验证工具
使用我们的信用卡号验证器,Luhn算法验证+卡组织识别,完全本地运行。