Validatore Carte di Credito

In giro esistono molti programmini per controllare se una carta di credito è valida o falsa. Ho deciso però anche io di scriverne uno semplice semplice in java. Per farlo,ho usato l’algoritmo di Luhn. Con lo stesso algoritmo potrete creare anche un generatore di carte di credito. Eccovi il mio scriptino:


public class ValidateCard {

   public static void main(String[] args) {
      if (args.length < 1) {
         System.err.println("Wrong Usage. Use: ValidateCard Card_Number");
         System.exit(1);
      }

      for (int i = 0; i < args.length; i++) {
         System.out.print("Card '" + args[i] + "'" );
      if (!args[i].matches("^\\d{13,19}$")) {
         System.out.println(" Error,must be 13-19 digits.");
      }
      else if (Validate(args[i])) {
         System.out.println(" is a valid credit card.\n");
      }
      else{
         System.out.println(" is an invalid credit card.\n");
      }
      }

      }
   /*
   La formula di Luhn si basa su tre semplici passaggi:

   1. Moltiplicare per 2 ogni cifra posta in posizione dispari, se il risultato è composto da un numero a 2 cifre, bisogna sommarle in modo da ottenere un’unica cifra (es. 18 = 1+ 8)
   2. Sommare tutti i risultati ottenuti
   3. Sommare al risultato le cifre di posizione par
    */
   public static boolean Validate(String Card_Number){

      int tot = 0;

      for (int i=0; i<= Card_Number.length() - 1; i+=2) {
         int temp = Integer.parseInt(Card_Number.substring(i, i + 1));

            temp *= 2;
            if (temp > 9){
            temp = (temp % 10) + 1;
            }
            tot += temp;
      }
      return (tot % 10 == 0);
   }

}

Lascia una Risposta