Antes que nada, no estoy seguro si esto debería estar en stackoverflow, pero pensé que trataría de preguntar de todos modos.Algoritmo de Luhn o Verhoeff para números de tarjeta de crédito
En el pasado siempre he usado el algoritmo luhn para la comprobación de errores en los números de tarjetas de crédito, pero hoy pensé que implementaría el algoritmo verhoeff en php, principalmente para matar el tiempo.
Lo probé en mis propios números de tarjeta y funcionó bien, lo que me hizo pensar si debería usar Verhoeff sobre luhn para verificar mi error de tarjeta de crédito en el futuro.
Ahora mis preguntas:
Habría alguna ventaja significativa en el uso de Verhoeff sobre luhn?
Sé que verhoeff es un poco más complejo en su implementación y puede detectar más errores de transcripción que luhn, lo que naturalmente me llevaría a pensar que es un poco más lento, pero aparte de la ventaja de detectar más errores de transcripción y Desventaja (si realmente puedes llamarlo así) de ser un poco más lento, no puedo pensar en otras diferencias reales.
¿Funcionará el algoritmo verhoeff para todas las tarjetas importantes?
Sé que luhn funcionará para todas las tarjetas principales, pero ¿Verhoeff también funcionará para todas ellas? Estoy bajo la suposición de que funcionará para todos ellos, pero pensé que debería verificar de todos modos.
¿Hay alguna razón por la que solo he visto a personas que usan luhn verificar los números de las tarjetas de crédito?
En todo mi tiempo como desarrollador solo he visto personas que usan el algoritmo luhn para verificar los números de las tarjetas de crédito. ¿Hay una buena razón para esto, o simplemente es que luhn es más conocido?
Cualquier ayuda sería apreciada, gracias por su tiempo.
Después de leer su respuesta, también estoy confundido en cuanto a cómo revisé mis tarjetas. Comprobé 2 tarjetas diferentes, una dice mastercard, una dice visa y ambas "verificadas". Después de leer su respuesta, intentaré investigar más sobre esto, y por supuesto esperaré para ver qué otras respuestas podrían surgir;) ¡Gracias por su tiempo! –
Ejemplo de PAN válida; 5555555555554444 luhn = pass verhoeff = fail –
Una vez más, gracias por su respuesta andrew. Creo que voy a apuntar esto a la suerte. Pero me has ayudado a entender esto mucho mejor ahora, y Alex K, gracias por tu ejemplo. –