Luhn算法适用于所有主流信用卡吗? (发现,签证,万事达卡,美国运通卡)

时间:2011-10-22 21:11:30

标签: e-commerce

参考:Luhn Algorithm

Luhn算法是快速验证用户是否正确输入CC#的好方法。

但是,我担心可能有一部分主流信用卡不使用Luhn算法友好数字。

我确实已经在我们的应用程序中登录以检测所有Luhn算法拒绝中的模式,但我宁愿明确地知道。

3 个答案:

答案 0 :(得分:13)

几乎。

中国银联和一种大莱卡(enRoute)不使用Luhn验证。 ( LazyOne’s answer关于大来俱乐部是错误的。)

几乎所有人都这样做。

引用Wikipedia's 'Bank card' page

根本没有验证:

  • Diners Club enRoute
  • 中国银联

使用Luhn 2进行验证:

  • 美国运通
  • 银行卡
  • Diners Club Carte Blanche
  • Diners Club International
  • 美国大来俱乐部&加拿大
  • 发现卡
  • InstaPayment
  • JCB
  • 激光
  • 大师
  • Dankort
  • 万事达
  • 开关
  • 签证
  • Visa Electron

答案 1 :(得分:5)

- 适用于所有主流卡类型。

我有一个自定义的PHP类来处理从各种“验证卡号”编译的卡数据,以及来自少数编程语言的相同功能+来自维基百科的信息。一些支付处理系统。它成功验证了这些卡类型的测试卡号(每个支付系统都有这些号码):

  • VISA借记/贷记
  • VISA Electron
  • VISA Delta
  • 万事达
  • AMEX
  • 大师
  • 开关
  • 大来俱乐部
  • 发现
  • JCB

答案 2 :(得分:3)

LUN检查适用于大多数信用卡。它是一个模数10校验位系统,以保证卡号已被准确读取/记录(磁条,虚拟终端或手动卡打印机过去的手动输入)。

在手动数据输入的时代,这些检查系统用于确保准确输入UPS的皮卡簿编号系统等密钥(模数7校验位)。

它甚至用在像代码128这样的条形码系统中,它需要将一个模数103位添加到编码数据字符串中,以验证代码是否被正确读取。