Algorítimo de Luhn

Calcula a verificação de soma de sequência de dígitos utilizando o algorítimo de Luhn (módulo 10), calcula o dígito de validação (o dígito a ser acrescentado à sequência de dígitos para tornar toda a sequência de verificação de soma igual a zero).

O algorítimo de Luhn foi desenvolvido pelo cientista de computação alemão Hans Peter Luhn em 1954. Ele calcula a simples fórmula de verificação de soma utilizada para validar números de identificação, tais como os números de cartão de crédito. O algorítimo foi desenvolvido para proteger contra falhas acidentais, como erros de digitação de dígito. Ele irá detectar qualquer erro de dígito único, assim como quase todas as transposições de dígitos adjacentes. Ele não irá, no entanto, detectar a transposição da sequência de dois dígitos 09 a 90 (ou vice-versa).
A calculadora abaixo traz a verificação de soma de Luhn de uma determinada sequência de dígitos. A sequência é considerada válida se a verificação de soma mod 10 for igual a zero. Ela também informa o próximo dígito de verificação a ser acrescentado ao final da sequência de origem para formar um número válido de acordo com o algorítimo de Luhn.

PLANETCALC, Algorítimo de Luhn

Algorítimo de Luhn

Verificação de soma de Luhn mod 10
 
Próximo dígito de verificação
 

A fórmula é bem simples: para calcular a verificação de soma de Luhn, você precisa somar todos os dígitos ímpares (calculando da direita para a esquerda, de forma que o último dígito é considerado N1) e somar todos os dígitos pares multiplicado por 2, se o produto da multiplicação for maior que 9 então você deve subtrair 9. Se o último dígito da verificação de soma for zero, significa que toda a sequência é válida.
Para produzir um dígito de validação, nós podemos simplesmente acrescentar "0" na sequência de origem e calcular a verificação de soma de Luhn novamente. Se o último dígito da verificação de soma obtida for zero, então o dígito de validação também é zero, caso contrário o dígito de validação pode ser obtido ao subtrair o último dígito de verificação de soma por 10.

URL copiado para a área de transferência
PLANETCALC, Algorítimo de Luhn

Comentários