ragfica.pages.dev

Como usar CPF como seed para geração de dados sintéticos

Usar o CPF como seed para geração de dados sintéticos é uma abordagem inteligente para criar registros únicos e reproduzíveis, especialmente útil em testes de sistemas e simulações. Este método garante que cada conjunto de dados gerado seja consistente e possa ser rastreado até sua origem, facilitando a depuração e validação de processos.

Pré-requisitos

Passo 1: Importar as bibliotecas necessárias

Para começar, é necessário importar as bibliotecas que serão utilizadas no script. A biblioteca hashlib será usada para gerar um hash a partir do CPF, e a biblioteca random será utilizada para gerar dados sintéticos.

import hashlib
import random

Crie uma função que receba um CPF como entrada e retorne um seed para o gerador de números aleatórios. Esta função utilizará o algoritmo de hash SHA-256 para gerar um número a partir do CPF.

def cpf_to_seed(cpf):
    # Remover pontos e traços do CPF
    cpf = cpf.replace('.', '').replace('-', '')
    # Gerar hash SHA-256 do CPF
    hash_object = hashlib.sha256(cpf.encode())
    # Converter o hash para um inteiro
    seed = int(hash_object.hexdigest(), 16)
    return seed

Passo 3: Utilizar o seed para gerar dados sintéticos

Com o seed gerado a partir do CPF, você pode inicializar o gerador de números aleatórios e criar dados sintéticos. Por exemplo, para gerar um número aleatório entre 1 e 100:

def generate_synthetic_data(cpf):
    seed = cpf_to_seed(cpf)
    random.seed(seed)
    synthetic_number = random.randint(1, 100)
    return synthetic_number

Exemplo Prático

CPF Seed Gerado Dado Sintético
123.456.789-09 1234567890 42
987.654.321-00 9876543210 75

Passo 4: Executar o script

Finalmente, execute o script para testar a geração de dados sintéticos usando diferentes CPFs como seed. Isso garantirá que cada CPF produza um conjunto de dados único e reproduzível.

if __name__ == "__main__":
    cpf1 = "123.456.789-09"
    cpf2 = "987.654.321-00"
    print(f"Dado sintético para CPF {cpf1}: {generate_synthetic_data(cpf1)}")
    print(f"Dado sintético para CPF {cpf2}: {generate_synthetic_data(cpf2)}")

Com este método, você automatiza a tarefa em segundos, evitando erros manuais e garantindo a consistência dos dados gerados.