Luhn算法

Luhn算法,也称为模数10公式、模10算法、LUHN校验、模10校验、检验码算法,又称“求和校验码”,是一种根据银行卡号码判断其正确性的算法。它是由美国人费尔南多·卢恩(F. D. Lun)发明的,由IBM提出的,1960年代末发展起来的。

原理

Luhn算法是一种检测银行卡号码正确性的算法。它的原理是:将银行卡号码从右到左依次编号,从右端第一个数字开始,偶数位乘以2,如果乘积为两位数,则将其减去9,将所有乘积相加,然后用总和除以10,若余数为0,则该银行卡号码正确,否则该银行卡号码不正确。

校验过程

Luhn算法可以用来检验银行卡号码的正确性。下面以银行卡号码“4367421234567890”为例,来演示Luhn算法的校验过程:

1. 将银行卡号码从右到左依次编号,从右端第一个数字开始,编号如下:

2. 将偶数位乘以2,如果乘积为两位数,则将其减去9,得到的结果如下:

3. 将所有乘积相加,得到总和为80。

4. 用总和80除以10,余数为0,说明该银行卡号码正确。