原文:http://www.icloudyin.com/?p=61
- 检验数字算法(Luhn Check Digit Algorithm),也叫做模数10公式,是一种简单的算法,用于验证银行卡、信用卡号码的有效性的算法。对所有大型信用卡公司发行的信用卡都起作用,这些公司包括美国Express、护照、万事达卡、Discover和用餐者俱乐部等。这种算法最初是在20世纪60年代由一组数学家制定,现在Luhn检验数字算法属于大众,任何人都可以使用它。
- 将卡号上的每个数字乘上其权重(weight),如果卡号上的数字个数是偶数,那么第一个数字的权重就是2,若是奇数,那么权重就给1,剩下来的数字,根据第一个数字依序给定。例如某信用卡卡号的数字个数为偶数,那么从第一个数字开始的权重依序为 2、1、2、1、2、1 …。
- 如果数字乘上自己的权重后比9还大,那么就从这加权数字里扣除9。
- 接下来将所有处理过的加权数字全部加总起来,并且除以10,取其余数。
java
1 | int sum = 0; |
python
1 | def check_bank_card(card_num): |
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章