码迷,mamicode.com
首页 > 其他好文 > 详细

算法系列4——Luhn

时间:2014-08-08 21:26:26      阅读:410      评论:0      收藏:0      [点我收藏+]

标签:style   color   os   算法   size   ef   on   简单   

     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整除。

 

 

算法系列4——Luhn,布布扣,bubuko.com

算法系列4——Luhn

标签:style   color   os   算法   size   ef   on   简单   

原文地址:http://blog.csdn.net/yxstars/article/details/38444135

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!