$verifcard() - vérificateur de carte bancaire

Soyez le premier à donner votre avis sur cette source.

Snippet vu 44 043 fois - Téléchargée 26 fois

Contenu du snippet

petit code qui vérifie la validité du code d'une carte bancaire, a titre éducatif bien sur :)

Source / Exemple :


; ### VALIDATEUR DE CARTE BANCAIRES ( BombStrike )
;
; Ce code permet de valider une carte bancaire selon le type et la banque
;
; Utilisation:
;  $verifcard(<16chiffres>,<type>,[banque])
;
; Liste des types:
;  1. Visa
;  2. Mastercard
;  3. Discovery
;  4. Eurocard
;  5. American Express
;
; Liste des banques:
;  Visa:
;   1. La Poste
;   2. Credit Commercial
;   3. Credit Lyonnais
;   4. Societe Generale
;   5. BNP
;   6. Banque Populaire
;   7. Banque Sofinco
;   8. Caisse d'Epargne
;  Mastercard:
;   1. Finedis
;   2. Accord Finances
;   3. Credit Agricole
;
; Donc pour verifier une carte Visa à la banque populaire, il suffit de taper ca:
;  echo -a $verifcard(4975123457834562,1,6)
;
; Et voila, bonne chance :)

alias verifcard {
  ; si aucun parametre, si on l'appelle sous la forme /gencard alors on arrete tout ou si le numero de carte n'est pas valide
  if ($0 < 2 || !$isid || $len($1) != 16 || $1 !isnum) { return ERR_INVPARMS Paramètres manquants ou invalides }

  ; si on est chez visa, generation des 4 premiers chiffres suivant la banque
  if $2 == 1 {
    if ( $3 > 0 && $3 < 8 ) { var %a = 4,%b = 9,%c = 7,%d = $calc($3 - 1) }
    if $3 == 8 { var %a = 4,%b = 9,%c = 7,%d = 8 }
  }

  ; si on est chez mastercard, generation des 4 premiers chiffres suivant la banque
  if $2 == 2 {
    if $3 == 1 { var %a = 5,%b = 0,%c = 1,%d = 6 }
    if $3 == 2 { var %a = 5,%b = 0,%c = 3,%d = 2 }
    if $3 == 3 { var %a = 5,%b = 1,%c = 3,%d = 1 }
  }
  if ( $2 > 2 && $2 <= 5 ) { var %a = $mid($1,1,1),%b = $mid($1,2,1),%c = $mid($1,3,1),%d = $mid($1,4,1) }

  ; si on a choisi une mauvaise carte ou une mauvaise banque, %a est nul donc on arrete tout
  if !%a { halt }

  ; on verifie la validité des quatres premiers chiffres
  if ( $left($1,4) != $+(%a,%b,%c,%d) ) { return ERR_INV Carte Invalide }
  var %e = $mid($1,5,1),%f = $mid($1,6,1),%g = $mid($1,7,1),%h = $mid($1,8,1),%i = $mid($1,9,1),%j = $mid($1,10,1),%k = $mid($1,11,1),%l = $mid($1,12,1),%m = $mid($1,13,1),%n = $mid($1,14,1),%o = $mid($1,15,1),%p = $mid($1,16,1)

  ; algorithme de lhun
  var %aa = %a,%ca = %c,%ea = %e,%ga = %g,%ia = %i,%ka = %k,%ma = %m,%oa = %o
  inc %aa %aa | inc %ca %ca | inc %ea %ea | inc %ga %ga | inc %ia %ia | inc %ka %ka | inc %ma %ma | inc %oa %oa
  var %mpr = $+(%aa,%b,%ca,%d,%ea,%f,%ga,%h,%ia,%j,%ka,%l,%ma,%n,%oa,%p)
  var %r = 1
  var %sb = 0
  while ( %r <= $len(%mpr) ) {
    var %sb = $calc(%sb + $mid(%mpr,%r,1))
    inc %r
  }
  var %lu = $calc(10 - (%sb % 10))
  if %lu == 10 { var %lu = 0 }
  ; %lu est le 16eme chiffre soit le chiffre qui assure la validité de la carte

  ; si %lu != 0 alors la carte n'est pas valide
  if ( %lu != 0 ) { return ERR_INVLUHN Clé de lhun invalide }

  ; on si on atteint cette etape, c'est que la clé est valide
  return S_OK Carte valide
}

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
mercredi 11 avril 2012
Statut
Membre
Dernière intervention
21 avril 2012

bonjour,
je suis intérressé pas cette source le seul soucis c'est que je démarre dans le métier "newbie" est donc je voudrais savoir quel type de logiciel faut il pour exécuter cette source
car je voudrais aussi savoir si elle est ok pour une execution a titre informatif pour mon apprentissage "autodidacte"

merci de me répondre
Messages postés
2
Date d'inscription
mercredi 28 novembre 2012
Statut
Membre
Dernière intervention
28 novembre 2012

ou peut on avoir le l'ogiciel
Messages postés
1
Date d'inscription
jeudi 25 novembre 2010
Statut
Membre
Dernière intervention
25 novembre 2010

bonjour ou trouver ce logiciel MERCI
Messages postés
1
Date d'inscription
dimanche 13 décembre 2009
Statut
Membre
Dernière intervention
26 juin 2010

merci
Afficher les 16 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.