Python判断一个信用卡号是否合理

一个信用卡号必须是13到16位的整数

1954年,IBM的Hans Luhn提出一种算法,用于验证信用卡号的有效性。

这个算法在确定输入的卡号是否正确,或者这张信用卡是否被扫描仪正确扫描方面是非常有用的。

  • 4,指Visa信用卡
  • 5,指Master万事达卡
  • 37,指American Express 国际信用卡
  • 6,指Discover 信用卡

遵循这个合法性检测可以生成所有的信用卡号,通常称之为Luhn检测或者Mod 10检测,可以如下描述(为了方便解释,假设卡号4388576018402626:

1.从右到左对偶数位数字翻倍。如果对某个数字翻倍之后的结果是一个两位数,那么就将这两位加在一起得到一位数。

2.现在将第一步得到的所有一位数相加。

3.将卡号里从右到左奇数位上的所有数字相加。

4.将第二步和第三步得到的结果相加。

5.如果第四步得到的结果能被10整除,那么卡号是合法的;否则,卡号是不合法的。

例如,号码4388576018402626是不合法的,但是号码43

猜你喜欢

转载自blog.csdn.net/weixin_44510615/article/details/105192995