L'algorithme de Luhn de travail pour toutes les cartes de crédit? (Discover, Visa, Mastercard, Amex)

Référence: Algorithme De Luhn

L'Algorithme de Luhn est un excellent moyen de vérifier rapidement que l'utilisateur a tapé leur CC # correctement.

cependant, je m'inquiète qu'il puisse y avoir un sous-ensemble de cartes de crédit grand public qui n'utilisent pas de numéros Luhn-algorithme-friendly.

j'ai une journalisation en place dans notre application pour détecter un motif dans tous les rejets de L'algorithme de Luhn, mais je préférerais le savoir définitivement.

19
demandé sur Brian Webster 2011-10-23 01:11:30

3 réponses

Presque.

China UnionPay et un genre de carte Diners Club (en route) ne pas utiliser de Luhn de validation. (la réponse de LazyOne c'est faux à propos Diners Club.)

Presque tout le monde fait.

Citant la page 'carte bancaire' de Wikipedia:

Ne pas valider à tous:

  • Diners Club enRoute
  • China UnionPay

valider avec Luhn 2:

  • American Express
  • Bancaire
  • Diners Club Carte Blanche
  • Diners Club International
  • Diners Club Etats-Unis & Canada
  • Découvrir La Carte
  • InstaPayment
  • JCB
  • Laser
  • Maestro
  • Dankort
  • MasterCard
  • Solo
  • Switch
  • Visa
  • Visa Électron
12
répondu John Haugeland 2017-03-21 14:17:15

Oui -- cela fonctionne pour tous les types de carte.

j'ai une classe PHP personnalisée pour traiter les données de carte qui a été compilé à partir de diverses "valider le numéro de carte" et des fonctions similaires à partir de peu de langages de programmation + informations de Wikipedia et certains systèmes de traitement des paiements. Il valide avec succès les numéros de cartes de test (chaque système de paiement a peu de tels numéros) pour ces types de cartes:

  • VISA débit / crédit
  • VISA Électron
  • VISA Delta
  • MasterCard
  • AMEX
  • Maestro
  • Switch
  • Solo
  • Diners Club
  • Découvrir
  • JCB
5
répondu LazyOne 2011-10-22 22:29:48

le contrôle LUN fonctionne sur la plupart des cartes de crédit. Il s'agit d'un système à 10 chiffres de contrôle de module pour garantir que le numéro de la carte a été correctement lu/enregistré (Bande Magnétique, terminal virtuel ou entrée manuelle dans les vieux jours de l'imprimeur de carte manuelle).

à l'époque de la saisie manuelle des données, ces systèmes de vérification étaient utilisés pour s'assurer que des clés comme le système de numérotation des livres de ramassage D'UPS étaient entrées avec précision (chiffre de vérification du module 7).

il est même utilisé dans le codage à barres des systèmes comme le code 128 qui nécessite un module 103 chiffre ajouté à la chaîne de données encodées pour vérifier que le code a été lu correctement.

3
répondu Fiasco Labs 2015-07-08 03:43:57