En los Estados Unidos, usan el algoritmo de Luhn:
enlace
Cómo el algoritmo verifica un número:
- Desde el dígito más a la derecha, que es el dígito de control, moviéndose a la izquierda, se duplica el valor de cada segundo dígito; Si el producto de esta operación de duplicación es mayor que 9 (por ejemplo, 8 × 2 = 16), sume los dígitos de los productos (por ejemplo, 16: 1 + 6 = 7, 18: 1 + 8 = 9).
- Tome la suma de todos los dígitos.
- Si el módulo total 10 es igual a 0 (si el total termina en cero), entonces el número es válido de acuerdo con la fórmula de Luhn; de lo contrario no es válido.
Cómo calcular el dígito de control:
El dígito de verificación se obtiene calculando la suma de los dígitos y luego computando 9 veces ese valor módulo 10. En forma de algoritmo:
- Calcule la suma de los dígitos (después de duplicar cada segundo dígito).
- Multiplica por 9.
- El último dígito es el dígito de control.
Ejemplo:
Número: 4321-5678-7531-456x
(donde x
es el dígito de control).
1. Number: 4 3 2 1 5 6 7 8 7 5 3 1 4 5 6 X
2. Double every second: 8 4 10 14 14 6 8 12
3. Sum digits >9: 8 3 4 1 1 6 5 8 5 5 6 1 8 5 3
4. Sum all digits: 8 + 3 + 4 + 1 + 1 + 6 + 5 + 8 + 5 + 5 + 6 + 1 + 8 + 5 + 3 = 69
5. Multiply sum by 9: 69 x 9 = 621
6. Take value mod 10: 621 mod 10 = 1 => x = 1
El dígito de control es 1
y el número válido completo es 4321-5678-7531-4561
.
Si tuviera que ejecutar el algoritmo nuevamente para verificar el número, entonces la suma de todos los dígitos en el Paso 4 sería 69 + 1 = 70
. Luego, 70 mod 10 = 0
, por lo que el número es válido de acuerdo con el algoritmo.