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.
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
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
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.