Com base no ANSI X4.13, a fórmula LUHN (também conhecida como módulo 10, ou mod 10, algoritmo) é usada para gerar e / ou validar e verificar a precisão dos números de cartão de crédito.
Dígito de verificação do cartão de crédito
A maioria dos cartões de crédito contém um dígito de verificação, que é o dígito no final do número do cartão de crédito. A primeira parte do número do cartão de crédito identifica o tipo de cartão de crédito (Visa, MasterCard, American Express, etc.) e os dígitos do meio identificam o banco e o cliente.
Para gerar o dígito de verificação, a fórmula LUHN é aplicada ao número. Para validar o número do cartão de crédito, o dígito de verificação é incluído na fórmula.
Veja como funciona o algoritmo para verificar cartões de crédito; a matemática é bastante simples:
1) Começando com o penúltimo dígito e movendo para a esquerda, dobre o valor de todos os dígitos alternados.
2) Começando da esquerda, pegue todos os dígitos não afetados e adicione-os aos resultados de todos os dígitos individuais da etapa 1. Se os resultados de qualquer um dos números da etapa 1 forem dois dígitos, certifique-se de adicionar os dois números primeiro (ou seja 18 resultaria em 1 + 8). Basicamente, sua equação parecerá um problema de adição normal que adiciona cada dígito.
3) O total da etapa 2 deve terminar em zero para que o número do cartão de crédito seja válido.
A fórmula LUHN foi criada no final dos anos 1960 por um grupo de matemáticos. Pouco depois, as empresas de cartão de crédito o adotaram. Como o algoritmo é de domínio público, ele pode ser usado por qualquer pessoa.
A fórmula LUHN também é usada para verificar a validade do número de seguro social canadense (SIN). Na verdade, a fórmula LUHN é amplamente usada para gerar os dígitos de verificação de muitos números de contas primárias diferentes. Quase todas as instituições que criam e exigem números de conta ou de identificação exclusivos usam o algoritmo Mod 10.