Validacion Modulo 10 para tarjetas de credito

Módulo 10 no es mas ni menos que un algoritmo usado para validar un sin número de numeros de identifcación, comunmente se la relaciona a tarjetas de crédito pero en perú también es usado en otros números de identifiación como por ejemplo en la C.C.I. (Código de cuenta interbancaria) que es brindada por la Cámara de Compensación Electrónica y que sirve como identificador único para la realización de transferencia entre cuentas de diferentes bancos de perú.

Este algoritmo fue creado por Hans Peter Luhn en IBM y es un algoritmo de dominio público, en si no es un algoritmo hash ni nada por estilo ( tampoco pretende serlo) sino simplemente sirve para evitar errores accidentales al usar estos identificadores.

Más información al respecto la tenemos en WikiPedia, con ejemplos tanto para la generación y validación, además les dejo otro algoritmo usado para el mismo fin por si necesiten usarlo:

  1 public static  bool ValidaModulo10(string strNumeroValidar)
2 {
3 strNumeroValidar = Regex.Replace(strNumeroValidar, @”[^0-9]”, “”);
4 int LongitudCadena = strNumeroValidar.Length;
5 int intImpar = 0;
6 int intUniforme = 0;
7
8 char[] arrNumero = new char[LongitudCadena];
9 arrNumero = strNumeroValidar.ToCharArray();
10 Array.Reverse(arrNumero, 0, LongitudCadena);
11 for (int i = 0; i < LongitudCadena; i++)
12 {
13 if (i % 2 == 0)
14 {
15 intImpar += (Convert.ToInt32(arrNumero.GetValue(i)) – 48);
16 }
17 else
18 {
19 int intTemp = (Convert.ToInt32(arrNumero[i]) – 48) * 2;
20 if (intTemp > 9)
21 {
22 intTemp = intTemp – 9;
23 }
24 intUniforme += intTemp;
25 }
26 }
27 if ((intImpar + intUniforme) % 10 == 0)
28 return true;
29 else
30 return false;
31 }


Espero les sea de ayuda,

Ivan Mostacero

http://www.msdnlive.net/

Un comentario en “Validacion Modulo 10 para tarjetas de credito”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *