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éseau | Préfixe | Longueur |
|---|---|---|
| Visa | 4 | 16 |
| Mastercard | 51-55, 2221-2720 | 16 |
| American Express | 34, 37 | 15 |
| Discover | 6011, 65 | 16 |
| JCB | 35 | 16 |
⚠
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.