Algoritmo de Luhn em Python (Validar Cartão de Crédito)
Implemente o algoritmo de Luhn em Python para validar e gerar números de cartão de crédito para testes.
Introdução
O algoritmo de Luhn (ou Módulo 10) é usado mundialmente para validar números de cartão de crédito, IMEI e outros identificadores.
O Algoritmo
Percorre os dígitos da direita para a esquerda, dobrando cada segundo dígito. Se o dobro for maior que 9, subtrai-se 9. A soma total deve ser divisível por 10.
Implementação em Python
credit-card-generator.pypython
def luhn_validate(number: str) -> bool:
digits = [int(d) for d in number if d.isdigit()]
digits.reverse()
total = 0
for i, digit in enumerate(digits):
if i % 2 == 1:
digit *= 2
if digit > 9:
digit -= 9
total += digit
return total % 10 == 0
def generate_card(prefix: str, length: int = 16) -> str:
import random
number = prefix
while len(number) < length - 1:
number += str(random.randint(0, 9))
# Calcular dígito verificador
for check_digit in range(10):
if luhn_validate(number + str(check_digit)):
return number + str(check_digit)
return number + "0"
# Gerar cartão Visa para testes
print(generate_card("4")) # Visa
print(generate_card("51")) # MastercardA função `luhn_validate` verifica se o número é válido. A função `generate_card` cria um número válido a partir de um prefixo de bandeira (Visa=4, Mastercard=51-55).
Não quer escrever código?
Use nossa ferramenta online gratuita para processar CREDIT-CARD-GENERATOR instantaneamente. Perfeito para testes rápidos.
Usar Ferramenta de CREDIT-CARD-GENERATOR Online