Aquí les traigo un código que me hice para mi clase de programación (Java) el cual es para validar el social insurance number (SIN canadiense), también puede ser tomado para validar números de tarjetas de crédito.
El programilla me un tiempo hacerlo y lo termine gracias a la ayuda de mi amigo Camus que me ayudo con la validación entre caracteres y integers.
El programa es muy sencillo y nada mas pide el sin de la persona y luego le dice si es valido o no. Para ello se usa un método llamado Luhn Algorithm y mas o menos sigue este proceso.
046 454 286 <— A fictitious, but valid SIN
121 212 121 <— Multiply each top number by the number below it.
Si el numero al multiplicarlo por 2 es mayor a 10 se suman los dos números por ejemplo 12 = 1+2 = 3
El resultado
086 858 276
y para finalizar
0+8+6+8+5+8+2+7+6=50
y se divide entre 10 el 50, si es divisible por 10 entonces es valido de lo contrario no.
para mas info mirar aquí
Aquí les dejo el codigo para que lo miren validatesin




