Vether
10Module · Identité

Numéros de carte : algorithme Luhn et BIN réalistes

Comment Vether génère un numéro de carte qui passe la validation Luhn (côté client) sans tomber sur un vrai numéro émis.

4 min de lecture·Mise à jour 2026-05-18

L'algorithme Luhn (ISO/IEC 7812) est le check-sum sur 1 chiffre utilisé par toutes les cartes bancaires. Un formulaire bien écrit le valide côté client avant d'envoyer au PSP. Vether génère des numéros Luhn-valides pour passer ces vérifications de surface.

Pseudocode Luhn

Validationtypescript
function luhnValid(num: string): boolean {
  let sum = 0;
  let alt = false;
  for (let i = num.length - 1; i >= 0; i--) {
    let n = parseInt(num[i], 10);
    if (alt) {
      n *= 2;
      if (n > 9) n -= 9;
    }
    sum += n;
    alt = !alt;
  }
  return sum % 10 === 0;
}

BIN — les 6 premiers chiffres

Le BIN (Bank Identification Number) identifie l'émetteur. Vether utilise une liste publique de BIN réels par pays/banque, choisis aléatoirement → la carte « ressemble » à une vraie Visa Crédit Agricole France si vous générez une carte FR.

RéseauPréfixeLongueur
Visa416
Mastercard51-55, 2221-272016
American Express34, 3715
Discover6011, 6516
JCB3516
Validation Luhn ≠ carte fonctionnelle
Une carte Luhn-valide passe la validation HTML/JS mais échoue immédiatement au moment du tokenization Stripe / autorisation bancaire. Aucune transaction réelle ne peut être effectuée avec ces numéros. C'est précisément le but : tester un formulaire sans risquer de paiement réel ni de vol de données.

Articles liés