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

Bri*_*ter 19 e-commerce

参考:Luhn算法

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

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

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

Joh*_*and 13

几乎.

中国银联和一种大莱卡(enRoute)不使用Luhn验证.(LazyOne对Diners Club 的回答是错误的.)

几乎所有人都这样做.

引用维基百科的"银行卡"页面:

根本不验证:

  • Diners Club enRoute
  • 中国银联

用Luhn 2验证:

  • 美国运通
  • 银行卡
  • Diners Club Carte Blanche
  • Diners Club International
  • Diners Club美国和加拿大
  • 发现卡片
  • InstaPayment
  • JCB
  • 激光
  • 大师
  • Dankort
  • 万事达
  • 独奏
  • 开关
  • 签证
  • Visa Electron

  • 第一个问题的关键词是“主流卡”……中国银联和 Diners Club enRoute 的奇怪子集似乎不在“主流”范围内,因此 LUHN 将验证“主流卡”/ (2认同)
  • 有一部分带有 Discover 标志的中国银联卡确实通过了 Luhn 验证。我可以从生产经验中证实这一点。 (2认同)
  • @JohnHaugeland:什么是“Luhn 2”?我似乎在网上找不到任何有关它的信息。 (2认同)

Laz*_*One 5

是的 - 它适用于所有主流卡类型.

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

  • 签证借记/贷记
  • VISA电子
  • VISA Delta
  • 万事达
  • AMEX
  • 大师
  • 开关
  • 独奏
  • 大莱卡
  • 发现
  • JCB

  • 这是不正确的.Diners Club enRoute不使用Luhn. (2认同)