jueves, 24 de febrero de 2011

¿Cómo se valida una una tarjeta de crédito?

La numeración de una tarjeta de crédito consta de de 16 cifras agrupadas en grupos de 4, y como ya os habréis dado cuenta es bastante fácil cometer un error a la hora de introducir los datos cuando, por ejemplo, compramos un billete por Internet. Para prevenir dichas erratas, la secuencia numérica incluye un conocido algoritmo de control de errores llamado Algoritmo Luhn-10. Este método se usa habitualmente por compañías y organizaciones al expedir números de cuenta y de filiación. El algoritmo está especificado en el standard ISO-7812 que define el formato para las tarjetas de crédito.


Los algoritmos de control de errores se diseñan normalmente para aplicaciones donde se espera que ocurran ciertos errores de forma recurrente. En este caso, el error más común sería aquél que el ser humano comete cuando teclea la secuencia en una web, ya sea al introducir un único dígito de forma incorrecta, o al intercambiar dos dígitos adyacentes. Es el último dígito de la secuencia, el que proporciona la capacidad de detección de errores, y se computa una vez que la secuencia completa se ha introducido de modo que se pueda comprobar su fiabilidad siempre que éste se transcriba o transmita.

Comprobación Módulo 10

El método consiste en sumar los 15 primeros dígitos de la secuencia. El último dígito, o dígito de comprobación, se calcula como el resto de dividir la suma de los dígitos anteriores entre 10. Usando el ejemplo de la imagen de arriba tendríamos que:

$$4+0+0+0+0+0+1+2+3+4+5+6+7+8+9 = 49$$

y por tanto último dígito debería ser

$$49 \mod 10 = 9$$

Este sencillo esquema detecta cualquier dígito que de forma individual estuviera incorrectamente escrito, sin embargo, no es capaz de distinguir qué dos dígitos consecutivos se intercambien, de modo que se necesita un método más robusto.

¿Cómo funciona el Algoritmo Luhn-10?

El Algoritmo Luhn-10 se basa en el concepto de módulo 10, pero lo modifica para darle robustez. La idea se basa en hacer una suma ponderada multiplicando dígitos adyacentes por constantes distintas (en este caso 1 o 2) para detectar el intercambio de éstos. Los pasos son los siguientes:
  1. Se multiplican los dígitos impares por 2.
  2. Si del producto resultan dos dígitos, sus cifras se suman para obtener un único término.
  3. Se suman todos los términos pares e impares
La secuencia será correcta si la suma es un múltiplo de 10, es decir, su resto es cero . Siguiendo el ejemplo anterior tendríamos que:


Como 60 es múltiplo de 10, entonces la secuencia es correcta. En caso de que accidentalmente intercambiásemos dos cifras (en naranja) nos daríamos cuenta que hay algún error en la secuencia porque la suma ya no sería múltiplo de 10.


Sin embargo, el Algoritmo de Luhn-10 no es infalible. En caso de que el error se cometa al intercambiar el 0 con el 9, entonces el fallo es indetectable, ya que ambas combinaciones producen el mismo resultado.


Fuente: EE4253 Digital Communications. Department of Electrical and Computer Engineering - University of New Brunswick, Fredericton, NB, Canada

21 comentarios:

Anónimo dijo...

Estimado, muy buena la información. Te hago una consulta, sabés que algoritmo se utiliza para Tarjeta NARANJA (Argentina) porque este no funciona.

Saludos

Anónimo dijo...

jijiji
+

Anónimo dijo...

Tengo el mismo problema con Tarjeta NARANJA (Argentina) en un sistema que se utiliza para venta en concesionarios.

Adolfo dijo...

Tarjeta Naranja tiene su propio algoritmo de validación, no supera el algoritmo de luhn.
Al que lo necesite me escribe.

Adolfo dijo...

aaa.araya@gmail.com

Javier E. Canteros dijo...

Hola yo tmb necesito el de tarjeta naranja zirocool3@gmail.com.ar. gracias

Anónimo dijo...

Adolfo, podrás enviármelo? sgocarrizo@gmail.com ! GRACIAS!

Anónimo dijo...

Hola Adolfo, yo también los necesito por favor. fabio_bucciarelli@hotmail.com. muchas gracias.

Anónimo dijo...

Hola tambien necesito gracias henrrycj74@hotmail.com

Unknown dijo...

Me lo podrias por favor pasar a juan.ignacio.liska@ayi-asociados.com

Tengo problemas también con las AMEX que comienzan con 3777

Desde ya muchas gracias

Saludos, Juan.-

Anónimo dijo...

Hola, me pasarías por favor el algoritmo para Naranja? (diegogr@hotmail.com) Gracias!

Juan Ignacio Liska dijo...

Estimados, como están?

Sigo teniendo problemas al validar las tarjetas naranjas
Tendrán el algoritmo de validación?

Por favor pasenlo a juan.ignacio.liska@ayi-asociados.com

Anónimo dijo...

Hola ! Me pasarias tambien el algoritmo para naranja ?
semassetti@gmail.com
Gracias !!!

Alan Jonatan Vido dijo...

Buenos días, me pasarías por favor el algoritmo para validar tarjeta naranja, Gracias de antemano!!
avido@vanguardtechcorp.com
saludos

Subcmd dijo...

Hola, me enviarias el algoritmo de tarjeta naranja?

Subcmd dijo...

Hola, me enviarias el algoritmo de tarjeta naranja?
subcmd@gmail.com

Luis Alberto Cáceres dijo...

que mierda pasa con el algoritmo de tarjeta naranja? alguien me explica? por que lo pide todo el mundo? jaja posta

Juan Ignacio Liska dijo...

Luis no sigue el algoritmo de Luhn, como otras nacionales
Supongo que se pide naranja al ser la más extendida pero por ejemplo tarjeta FIEL tampoco la válida

Saludos, Juan.-

Anónimo dijo...

me lo envias el algoritmo juan.mandolesi@gmail.com

Alejandro Silvestre dijo...

Hola, ¿Cómo estás? Me podrías enviar el algoritmo para validar una tarjeta de crédito naranja?. Mi email es alejandro@clickypass.com.

Saludos.

Anónimo dijo...

Hola, si alguien me puede colaborar enviándome el algoritmo de la tarjeta naranja se lo agradecería eternamente, mi correo es devligarreto@live.com. Muchas gracias.