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.
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
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
| CPF | Seed Gerado | Dado Sintético |
|---|---|---|
| 123.456.789-09 | 1234567890 | 42 |
| 987.654.321-00 | 9876543210 | 75 |
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.