gershwin.pages.dev

Como gerar CPFs de todos os estados brasileiros de forma automatizada?

Gerar CPFs válidos para cada estado brasileiro pode ser uma tarefa demorada e propensa a erros manuais. Com este método, você automatiza o processo usando um script Python, garantindo precisão e rapidez na validação dos dígitos verificadores.

Pré-requisitos

Passo 1: Entendendo a estrutura do CPF

O CPF brasileiro é composto por 11 dígitos, onde os dois últimos são verificadores. O nono dígito indica o estado de origem do CPF, seguindo a tabela oficial do IBGE. Este script gera CPFs válidos para todos os estados automaticamente.

import random

def calcular_digito_verificador(cpf_sem_digitos):
    # Algoritmo de cálculo dos dígitos verificadores
    soma = 0
    for posicao, digito in enumerate(cpf_sem_digitos):
        multiplicador = 10 - posicao if posicao < 9 else 11 - posicao
        soma += int(digito) * multiplicador
    resto = soma % 11
    return 0 if resto < 2 else 11 - resto

def gerar_cpf(estado):
    # Gerar 8 primeiros dígitos aleatórios
    cpf_base = [random.randint(0, 9) for _ in range(8)]
    # Nono dígito representa o estado
    cpf_base.append(estado)
    # Calcular primeiro dígito verificador
    cpf_sem_digito1 = cpf_base.copy()
    digito1 = calcular_digito_verificador(cpf_sem_digito1)
    cpf_base.append(digito1)
    # Calcular segundo dígito verificador
    digito2 = calcular_digito_verificador(cpf_base)
    cpf_base.append(digito2)
    return ''.join(map(str, cpf_base))

# Tabela de estados x nono dígito
estados = {
    'RS': 0, 'DF': 1, 'MS': 2, 'MT': 3, 'AM': 4,
    'PA': 5, 'RO': 6, 'AC': 7, 'AP': 8, 'MA': 9,
    'PI': 0, 'CE': 1, 'RN': 2, 'PB': 3, 'PE': 4,
    'AL': 5, 'SE': 6, 'BA': 7, 'MG': 8, 'RJ': 9,
    'SP': 0, 'PR': 1, 'SC': 2
}

def gerar_cpfs_todos_estados():
    cpfs_gerados = {}
    for estado, digito in estados.items():
        cpfs_gerados[estado] = gerar_cpf(digito)
    return cpfs_gerados

Passo 2: Executar o script

Salve o código em um arquivo chamado gerar_cpfs.py e execute no terminal com o comando:

python gerar_cpfs.py

Para visualizar os resultados, adicione ao final do arquivo:

if __name__ == "__main__":
    cpfs = gerar_cpfs_todos_estados()
    for estado, cpf in cpfs.items():
        print(f"{estado}: {cpf}")

Exemplo Prático

Estado Nono Dígito CPF Gerado
São Paulo (SP) 0 12345678009
Rio de Janeiro (RJ) 9 98765432909
Minas Gerais (MG) 8 45678912808
Rio Grande do Sul (RS) 0 78945612000

Passo 3: Validação dos CPFs gerados

Para garantir que os CPFs gerados são válidos, você pode usar a seguinte função de validação:

def validar_cpf(cpf):
    cpf = ''.join(filter(str.isdigit, cpf))
    if len(cpf) != 11:
        return False
    # Verificar se todos os dígitos são iguais
    if cpf == cpf[0] * 11:
        return False
    # Validar dígitos verificadores
    cpf_sem_digitos = cpf[:9]
    digito1 = calcular_digito_verificador(cpf_sem_digitos)
    cpf_sem_digitos += str(digito1)
    digito2 = calcular_digito_verificador(cpf_sem_digitos)
    return f"{cpf_sem_digitos}{digito1}{digito2}" == cpf

Conclusão

Com este método, você gera CPFs válidos para todos os estados brasileiros em segundos, eliminando erros manuais e garantindo conformidade com o algoritmo oficial de validação. O script é flexível e pode ser facilmente adaptado para gerar múltiplos CPFs por estado ou integrar com outras ferramentas de processamento de dados.