BIN Como Encontrar una CVV de una tarjeta de credito
El algoritmo de
Luhn y su importancia en la validación de tarjetas de pago
Tal y como se explicó hace algunos años en el artículo
«¿Cómo funcionan las tarjetas de pago? Parte I: PAN (Primary
Account Number)«, el PAN de una tarjeta está conformado por una serie
de dígitos (por lo general 16) con una estructura definida
Este artículo
describirá la importancia del último dígito del PAN, conocido como «dígito
de verificación» («check digit»), valor que permite identificar si un
número de tarjeta de pago es válido o no. Antes de proceder, es importante
tener en cuenta que el algoritmo de Luhn permite comprobar si una secuencia de
dígitos corresponde a un número de tarjeta (PAN) válido, sin que ello implique
que dicha tarjeta sea operativa o que pueda ser usada en transacciones
comerciales, labor que corresponde al centro autorizador.
Historia
Con el fin de validar
posibles errores a la hora de la transcripción de una secuencia de números
(cambiar un número por otro o identificar posibles intercambios de dígitos), el
ingeniero informático Hans Peter Luhn, que trabajaba para
IBM, diseñó en 1954 un algoritmo basado en el principio del módulo
aritmético (suma matemática mod-10) que permitía la identificación de posibles
errores durante la digitación o transmisión de una una cantidad considerable de
números entre una fuente y otra (por ejemplo, durante la digitación de un
número de tarjeta por una persona en un formulario web o en su escritura en un
papel). Su algoritmo se conoce como «algoritmo o fórmula de Luhn» o «algoritmo
de módulo 10».
Hans Peter Luhn
Obviamente, una de
las aplicaciones principales de este algoritmo se encuentra en la
identificación de errores de digitación del PAN de las tarjetas de pago
(definido en el estándar ISO/IEC 7812-1:2006 Identification cards —
Identification of issuers — Part 1: Numbering system).
A pesar de su
facilidad de implementación, el algoritmo no ofrece confiabilidad total en el
caso de intercambio de dos cifras contiguas (por ejemplo 12 con 21), razón por
la cual la fórmula ha sido optimizada en algoritmos más recientes como es el
caso del algoritmo de Verhoeff y el algoritmo de Damm.
Generación del
dígito de verificación a través del algoritmo de Luhn
Para generar el
dígito de verificación empleando el algoritmo de Luhn se deben seguir estos
pasos:
- En una secuencia de dígitos dada, el dígito de
verificación será el último valor, que en principio se desconoce
- Partiendo de esa última posición, se multiplica
cada dígito de posición par (contando desde la derecha) por dos. Si el
resultado es un número de dos dígitos, entonces se suman estos dos valores
- Posteriormente, se suman todos los dígitos
obtenidos
- El dígito de verificación es el número que se obtiene como residuo después de dividir ese resultado entre 10 (que es lo que en matemáticas se denomina mod-10). En otras palabras, el dígito de verificación es el número que debe agregarse a este resultado para hacer el siguiente múltiplo de 10.
Generación del dígito
de verificación empleando el algoritmo de Luhn
Validación de un
número de tarjeta empleando el algoritmo de Luhn
Cuando se cuenta con
una secuencia de dígitos y se quiere saber si esos números corresponden o no a
un posible número de tarjeta de pago (PAN), se aplica el algoritmo de Luhn cuyo
resultado debe ser 0 (cero) si esa secuencia es válida. En este caso, los pasos
a seguir son los mismos que en la generación, sólo que esta vez se tiene en
cuenta el último dígito de la secuencia dentro de las operaciones aditivas.
Para este ejemplo se usará la secuencia con el dígito de verificación generado
anteriormente:
Validación de un
número de tarjeta empleando el algoritmo de Luhn
Como se puede
observar, la secuencia es considerada válida ya que el resultado de la
operación mod-10 es igual a cero.
El siguiente caso
analiza otra secuencia de 16 dígitos para identificar si es un número de
tarjeta válido o no:
Validación de un
número de tarjeta empleando el algoritmo de Luhn
En este caso, el
resultado de mod-10 es igual a 1, por lo que la secuencia corresponde a un
número de tarjeta inválido.
Escenarios de
aplicación del algoritmo de Luhn en entornos PCI DSS
El algoritmo de Luhn
puede ser empleado para la validación del código IMEI de teléfonos móviles,
números de identificación personal, números de seguridad social, etc. No
obstante, su principal uso se encuentra en la identificación de la validez de
datos del PAN de una tarjeta de pago. En entornos PCI DSS esta labor es de
vital importancia en el cumplimiento de los siguientes controles:
- Validar que en entornos de pruebas y/o de
desarrollo no se usan datos de PAN reales (req. 6.4.3) mediante el
análisis de los datos de tarjetas empleados por los desarrolladores y su
validación con el algoritmo de Luhn.
- Validar que no existen datos de PAN reales almacenados
en texto claro (req. 3.4) en logs, ficheros de depuración, bases de datos,
etc. Esto se puede llevar a cabo analizando los resultados de herramientas
de búsqueda de datos de PAN y validándolos con el algoritmo de
Luhn.
- Implementar alertas en sistemas de
detección de intrusos (IDS) si se identifican secuencias de
números en el tráfico de red analizado (req. 11.5). Validar que no se
emplean canales de mensajería instantánea para el envío de datos de PAN,
como por ejemplo a través del correo electrónico (Req. 4.2).
- Implementar una metodología de descubrimiento de
datos para confirmar el alcance de PCI DSS, respuesta ante incidentes y
mecanismos para la detección y prevención de exfiltración del PAN en
canales no autorizados (Req. A3.2.5.x y A3.2.6.x del Anexo 3 de PCI DSS
para entidades designadas (DES))
Otros posibles usos
del algoritmo de Luhn son:
- Si el entorno emplea tokenización basada
en Format Preserving Tokenization (FPT) en la cual el
token tiene el mismo formato del PAN (16 dígitos) pero se quiere
distinguir si una secuencia de dígitos en particular es un PAN real o un
token, se puede emplear el algoritmo de Luhn
- En un formulario web de ingreso de datos de
tarjeta, para validar si el PAN digitado por el cliente final es un PAN
correcto o no, se puede emplear el algoritmo de Luhn a través de componentes
JavaScript, evitando de esta manera que se envíen datos inválidos al
centro autorizador
- Si se emplean soluciones de DLP (Data Loss
Prevention), se pueden configurar reglas específicas para identificar su
una secuencia de dígitos corresponde o no a un dato de PAN empleando el
algoritmo de Luhn.
- El algoritmo de Luhn y su importancia en la
validación de tarjetas de pago
- Tal y como se explicó hace algunos años en el
artículo «¿Cómo funcionan las tarjetas de pago? Parte I: PAN (Primary
Account Number)«, el PAN de una tarjeta está conformado por una serie de
dígitos (por lo general 16) con una estructura definida:
-
- Este artículo describirá la importancia del último
dígito del PAN, conocido como «dígito de verificación» («check digit»),
valor que permite identificar si un número de tarjeta de pago es válido o
no. Antes de proceder, es importante tener en cuenta que el algoritmo de
Luhn permite comprobar si una secuencia de dígitos corresponde a un número
de tarjeta (PAN) válido, sin que ello implique que dicha tarjeta sea
operativa o que pueda ser usada en transacciones comerciales, labor que
corresponde al centro autorizador.
- Historia
- Con el fin de validar posibles errores a la hora de
la transcripción de una secuencia de números (cambiar un número por otro o
identificar posibles intercambios de dígitos), el ingeniero informático
Hans Peter Luhn, que trabajaba para IBM,
diseñó en 1954 un algoritmo basado en el principio del módulo
aritmético (suma matemática mod-10) que permitía la identificación de
posibles errores durante la digitación o transmisión de una una cantidad
considerable de números entre una fuente y otra (por ejemplo, durante la
digitación de un número de tarjeta por una persona en un formulario web o
en su escritura en un papel). Su algoritmo se conoce como «algoritmo o
fórmula de Luhn» o «algoritmo de módulo 10».
- Hans Peter Luhn
- Obviamente, una de las aplicaciones principales de
este algoritmo se encuentra en la identificación de errores de digitación
del PAN de las tarjetas de pago (definido en el estándar ISO/IEC
7812-1:2006 Identification cards — Identification of issuers — Part 1:
Numbering system).
- A pesar de su facilidad de implementación, el
algoritmo no ofrece confiabilidad total en el caso de intercambio de dos
cifras contiguas (por ejemplo 12 con 21), razón por la cual la fórmula ha
sido optimizada en algoritmos más recientes como es el caso del algoritmo
de Verhoeff y el algoritmo de Damm.
- Generación del dígito de verificación a través del
algoritmo de Luhn
- Para generar el dígito de verificación empleando el
algoritmo de Luhn se deben seguir estos pasos:
- En una secuencia de dígitos dada, el dígito de
verificación será el último valor, que en principio se desconoce
- Partiendo de esa última posición, se multiplica
cada dígito de posición par (contando desde la derecha) por dos. Si el
resultado es un número de dos dígitos, entonces se suman estos dos valores
- Posteriormente, se suman todos los dígitos
obtenidos
- El dígito de verificación es el número que se
obtiene como residuo después de dividir ese resultado entre 10 (que es lo
que en matemáticas se denomina mod-10). En otras palabras, el dígito de
verificación es el número que debe agregarse a este resultado para hacer
el siguiente múltiplo de 10.
- Generación del dígito de verificación empleando el
algoritmo de Luhn
- Validación de un número de tarjeta empleando el
algoritmo de Luhn
- Cuando se cuenta con una secuencia de dígitos y se
quiere saber si esos números corresponden o no a un posible número de
tarjeta de pago (PAN), se aplica el algoritmo de Luhn cuyo resultado debe
ser 0 (cero) si esa secuencia es válida. En este caso, los pasos a seguir
son los mismos que en la generación, sólo que esta vez se tiene en cuenta
el último dígito de la secuencia dentro de las operaciones aditivas. Para
este ejemplo se usará la secuencia con el dígito de verificación generado
anteriormente:
- Validación de un número de tarjeta empleando el
algoritmo de Luhn
- Como se puede observar, la secuencia es considerada
válida ya que el resultado de la operación mod-10 es igual a cero.
- El siguiente caso analiza otra secuencia de 16
dígitos para identificar si es un número de tarjeta válido o no:
- Validación de un número de tarjeta empleando el
algoritmo de Luhn
- En este caso, el resultado de mod-10 es igual a 1,
por lo que la secuencia corresponde a un número de tarjeta inválido.
- Escenarios de aplicación del algoritmo de Luhn en
entornos PCI DSS
- El algoritmo de Luhn puede ser empleado para la
validación del código IMEI de teléfonos móviles, números de identificación
personal, números de seguridad social, etc. No obstante, su principal uso
se encuentra en la identificación de la validez de datos del PAN de una
tarjeta de pago. En entornos PCI DSS esta labor es de vital importancia en
el cumplimiento de los siguientes controles:
- Validar que en entornos de pruebas y/o de
desarrollo no se usan datos de PAN reales (req. 6.4.3) mediante el análisis de los datos de
tarjetas empleados por los desarrolladores y su validación con el
algoritmo de Luhn.
- Validar que no existen datos de PAN reales
almacenados en texto claro (req. 3.4) en logs, ficheros de depuración,
bases de datos, etc. Esto se puede llevar a cabo analizando los resultados
de herramientas de búsqueda de datos de PAN y validándolos con el
algoritmo de Luhn.
- Implementar alertas en sistemas de detección de
intrusos (IDS) si se identifican secuencias de números en el tráfico de
red analizado (req. 11.5). Un ejemplo con SNORT se puede encontrar aquí.
- Validar que no se emplean canales de mensajería
instantánea para el envío de datos de PAN, como por ejemplo a través del
correo electrónico (Req. 4.2). Un ejemplo con Office 365 se puede
encontrar aquí.
- Implementar una metodología de descubrimiento de
datos para confirmar el alcance de PCI DSS, respuesta ante incidentes y
mecanismos para la detección y prevención de exfiltración del PAN en
canales no autorizados (Req. A3.2.5.x y A3.2.6.x del Anexo 3 de PCI DSS
para entidades designadas (DES))
- Otros posibles usos del algoritmo de Luhn son:
- Si el entorno emplea tokenización basada en Format
Preserving Tokenization (FPT) en la cual el token tiene el mismo formato
del PAN (16 dígitos) pero se quiere distinguir si una secuencia de dígitos
en particular es un PAN real o un token, se puede emplear el algoritmo de
Luhn
- En un formulario web de ingreso de datos de
tarjeta, para validar si el PAN digitado por el cliente final es un PAN
correcto o no, se puede emplear el algoritmo de Luhn a través de
componentes JavaScript, evitando de esta manera que se envíen datos inválidos
al centro autorizador
- Si se emplean soluciones de DLP (Data Loss
Prevention), se pueden configurar reglas específicas para identificar su
una secuencia de dígitos corresponde o no a un dato de PAN empleando el
algoritmo de Luhn.
Dado que Microsoft Outlook admite la automatización, puede controlar
Outlook desde cualquier programa que esté escrito con Microsoft Visual
Basic. La automatización proporciona un método estándar de una aplicación
para obtener acceso a los objetos, métodos, propiedades y eventos de otras
aplicaciones que admiten la automatización.
El modelo de objetos de Outlook proporciona todas las funcionalidades
necesarias para manipular los datos almacenados en carpetas de Outlook, y
Para iniciar una sesión de automatización de cualquier página web, puede
utilizar el enlace anticipado o en tiempo de ejecución. El enlace en
tiempo de ejecución usa la función de Visual Basic GetObject o CreateObject para inicializar la pagina web. Por
ejemplo, el siguiente código establece una variable de objeto para el
objeto Application de Outlook, que es el objeto de nivel superior en el modelo de
objetos de Outlook. Todo el código de automatización debe definir un
objeto de Outlook Application para tener acceso a otros
objetos de Outlook.
VBCopiar
Dim objOL as Object
Set objOL = CreateObject("Sitioweb.Application")
Para usar el enlace anticipado, primero debe establecer una referencia a
la biblioteca de objetos de la pagina web. Use el comando de referencia en el
menú de herramientas de Visual Basic para aplicaciones (VBA) para establecer
una referencia a Biblioteca de objetos de WebBrowser1 xx.x, donde xx.x representa
la versión de Outlook en la que se está trabajando. Luego, puede usar la
siguiente sintaxis para iniciar una sesión de Outlook.
VBCopiar
Dim objOL as
WebBrowser1.Application
Set objOL = New WebBrowser1.Application
Vídeo Tutorial





GOOD LIKE
ResponderEliminarhola amigo me interesan tus conocimientos me indicas como contactarte porfa
ResponderEliminarhttps://www.facebook.com/profile.php?id=1240916017
Me puedes enviar un TDC virtual que sirva para verificar mi cuenta de PayPal? Si no es mucho pedir claro jaja.
ResponderEliminar