Luhn算法会通过校验码对一串数字进荇验证校验码通常会被加到这串数字的末尾处,从而得到一个完整的身份识别码
我们以数字“”为例,计算其校验位:
- 从校验位开始从右往左,偶数位乘2(例如7*2=14),然后将两位数字的个位与十位相加(例如10:1+0=1,14:1+4=5);
- 把得到的数字加在一起(本例中得到67);
- 将数芓的和取模10(本例中得到7)再用10去减(本例中得到3),得到校验位
- 从校验位开始,从右往左偶数位乘2,然后将两位数字的个位与十位相加;
- 计算所有数字的和(67);
- 取其个位数字(3)得到校验位。
- 使用PHP实现该算法(第一种):
另一种算法的PHP实现:
经检测能够校验16位或19位银行卡卡号。