Os cartões de crédito se tornaram um método de pagamento onipresente em nossas vidas diárias. No entanto, à medida que o uso de cartões de crédito aumenta, também surgem problemas, principalmente na identificação da validade e na prevenção de erros. Nessa época, o surgimento do algoritmo de Luhn trouxe uma sólida linha de defesa ao nosso sistema de pagamento.
O algoritmo de Luhn, também conhecido como algoritmo módulo 10, foi originalmente proposto pelo cientista da IBM Hans Peter Luhn em 1960. Esta é uma fórmula simples de cálculo de soma de verificação usada para verificar a validade de vários tipos de números de identificação, especialmente números de cartão de crédito. O algoritmo é especificado no padrão ISO/IEC 7812-1 e é de conhecimento de domínio público.
Este algoritmo foi projetado para proteger os usuários de erros de entrada acidentais, não para proteger contra ataques maliciosos.
Por exemplo, dado um número de conta 1789372997 (sem o dígito de verificação), o dígito de verificação pode ser calculado usando as seguintes etapas. Primeiro, todos os números são processados e, finalmente, o valor calculado pode ser verificado para ver se corresponde ao dígito de verificação original. Isso pode efetivamente verificar a validade do número e evitar erros.
A vantagem do algoritmo de Luhn é que ele pode detectar todos os erros individuais, bem como quase todas as transposições de números adjacentes. Por exemplo, se um único dígito estiver errado, o algoritmo o reconhecerá imediatamente. Entretanto, o algoritmo não é eficaz contra certos erros de entrada específicos, como a transposição de 09 e 90.
Além disso, embora o algoritmo de Luhn possa identificar a maioria dos erros, sua capacidade de detecção ainda é inferior a outros algoritmos de soma de verificação complexos, como os algoritmos de Verhoeff e Damm.
O algoritmo de Luhn não se limita à verificação de cartão de crédito, mas também é amplamente utilizado em outros sistemas de números de identificação. Por exemplo, o Número de Identificação do Provedor Nacional dos EUA, o Número do Seguro Social Canadense, o Número de Identificação Israelense, etc. são todos verificados usando este algoritmo.
O algoritmo de Luhn é quase indispensável em nosso mundo digital. Da próxima vez que você usar um cartão de crédito para pagar, você pensará em como esse algoritmo está protegendo sua segurança?