算法系列4《Luhn》

   
 Luhn算法由IBM的Hans Peter
Luhn发明,又叫做“模10”算法,是均等种简易的校验和算法,用来验证识别号,一般会受用来身份证号码,信用卡号、IMEI号、社会保险号的证实。它的算法简单,并不过下末段一位数字作为校验位,可以使得防范偶然的输入性错误。

 

   
Luhn算法只能用于简单的校验,不克用来加密算法。Luhn算法可以检测到以下输入性错误:所有的单位数字错误,如
210著作215;能检测到多数之临位错位,比如315创作351,但是只有少数员的情下无法检测,比如09写作90;能够检测双数字写错10栽的7
栽,比如11状吧22,但是生3种植无法检测,如22以及55、33以及66、44和77。
如果对校验有还胜似的要求,可以设想功能再强劲,但也再度复杂的Verhoeff算法。

 

 

LUHN算法的测算步骤:

1)  从卡号最后一各项数字开头,偶数位乘以2,如果就以2之结果是零星个数,将鲜单各类上数字相加保存。

 

例如:卡号:6
23 12 0000 00 00 00 00 11,(1+1+2)\2=8*

 

2)  将卡号中剩下的数字与方面结果负之数字一直相加。

 

6+3+2+1+8=20

 

3)  如果信用卡号是官的,总及可叫10整除。

 

 文/闫鑫原创   转载请注明出处http://blog.csdn.net/yxstars/article/details/38444135

发表评论

电子邮件地址不会被公开。 必填项已用*标注