← 返回首页

Luhn算法详解

什么是Luhn算法?

Luhn算法(又称模10算法)是一种简单的校验和算法,用于验证各种标识号码的有效性。几乎所有信用卡、借记卡都使用Luhn算法。

算法步骤

  1. 从右到左,对偶数位(倒数第2、4、6...位)的数字乘以2
  2. 如果乘积大于9,则减去9(或各位相加)
  3. 将所有数字相加
  4. 如果总和能被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算法验证+卡组织识别,完全本地运行。