🛠️

Whiz Tools

Build • Create • Innovate

Генератор CPF для тестирования и валидации данных

Генерируйте действительные, случайные номера CPF (Cadastro de Pessoas Físicas) для тестирования. Этот инструмент создает CPF, которые соответствуют официальному бразильскому формату и правилам валидации, не используя никакую реальную личную информацию.

Сгенерировать CPF

📚

Документация

Генератор CPF

Введение

CPF (Cadastro de Pessoas Físicas) — это уникальный идентификатор, присваиваемый гражданам и резидентам Бразилии для налоговых целей. Этот генератор создает действительные, случайные номера CPF для тестирования. Важно отметить, что сгенерированные CPF не связаны с реальными людьми и должны использоваться только в тестовых средах.

Структура CPF

CPF состоит из 11 цифр:

  • Первые 9 цифр — это базовые числа
  • Последние 2 цифры — контрольные цифры

Формат обычно представлен как: XXX.XXX.XXX-XX

Алгоритм проверки CPF

Алгоритм проверки CPF обеспечивает целостность номера. Вот как это работает:

  1. Умножьте первые 9 цифр на веса (от 10 до 2)
  2. Сложите результаты
  3. Вычислите остаток от суммы, деленной на 11
  4. Если остаток меньше 2, первая контрольная цифра равна 0; в противном случае это 11 минус остаток
  5. Повторите процесс для первых 10 цифр (включая первую контрольную цифру) с весами от 11 до 2
  6. Вычислите вторую контрольную цифру, используя то же правило, что и для первой

Как использовать этот генератор

  1. Нажмите кнопку "Сгенерировать CPF"
  2. Будет отображен действительный, случайный CPF
  3. Вы можете скопировать сгенерированный CPF для использования в ваших тестовых сценариях

Формула

Формула для генерации действительного CPF выглядит следующим образом:

1def generate_cpf():
2    # Генерируем 9 случайных цифр
3    base_cpf = [random.randint(0, 9) for _ in range(9)]
4    
5    # Вычисляем первую контрольную цифру
6    sum_1 = sum((10 - i) * digit for i, digit in enumerate(base_cpf))
7    check_digit_1 = (sum_1 * 10 % 11) % 10
8    
9    # Вычисляем вторую контрольную цифру
10    sum_2 = sum((11 - i) * digit for i, digit in enumerate(base_cpf + [check_digit_1]))
11    check_digit_2 = (sum_2 * 10 % 11) % 10
12    
13    return base_cpf + [check_digit_1, check_digit_2]
14

Вычисление

Генератор выполняет следующие шаги:

  1. Генерирует 9 случайных цифр
  2. Вычисляет первую контрольную цифру, используя описанный выше алгоритм
  3. Вычисляет вторую контрольную цифру
  4. Объединяет все цифры, чтобы сформировать полный CPF

Примеры

Вот некоторые примеры сгенерированных CPF:

  1. 123.456.789-09
  2. 987.654.321-00
  3. 111.222.333-96

Сценарии использования

Генератор CPF полезен в различных сценариях разработки и тестирования программного обеспечения:

  1. Тестирование баз данных: Заполнение тестовых баз данных действительными номерами CPF
  2. Проверка форм: Тестирование проверки ввода для форм регистрации пользователей в Бразилии
  3. Тестирование API: Использование сгенерированных CPF в запросах API, которые требуют действительной бразильской идентификации
  4. Тестирование производительности: Генерация больших наборов уникальных, действительных CPF для нагрузочного тестирования
  5. Тестирование UI/UX: Обеспечение правильного форматирования и отображения номеров CPF в пользовательских интерфейсах

Альтернативы

Хотя CPF является основным индивидуальным идентификатором в Бразилии, существуют и другие идентификаторы, которые могут использоваться в специфических контекстах:

  1. RG (Registro Geral): Государственный удостоверяющий документ
  2. CNPJ (Cadastro Nacional da Pessoa Jurídica): Используется для бизнеса и юридических лиц
  3. PIS/PASEP: Используется для трудовых целей

История

CPF был введен в Бразилии в 1965 году в рамках более широких усилий по модернизации налоговой системы страны. Изначально он использовался в основном для целей подоходного налога, но со временем его использование расширилось на различные другие области бразильской бюрократии и торговли.

Ключевые вехи в истории CPF:

  • 1965: CPF введен для физических лиц
  • 1972: CPF становится обязательным для всех налогоплательщиков
  • 1990-е: CPF начинает использоваться более широко в коммерческих и финансовых транзакциях
  • 2000-е: Цифровые системы еще больше интегрируют CPF в повседневную жизнь в Бразилии

Сегодня CPF является неотъемлемой частью взаимодействия граждан и резидентов Бразилии с государственными услугами, финансовыми учреждениями и многими коммерческими транзакциями.

Примеры кода

Вот фрагменты кода для генерации и проверки CPF на различных языках программирования:

1import random
2
3def generate_cpf():
4    cpf = [random.randint(0, 9) for _ in range(9)]
5    for _ in range(2):
6        value = sum((cpf[num] * ((len(cpf) + 1) - num) for num in range(len(cpf)))) % 11
7        cpf.append(11 - value if value > 1 else 0)
8    return ''.join(map(str, cpf))
9
10def validate_cpf(cpf):
11    numbers = [int(digit) for digit in cpf if digit.isdigit()]
12    if len(numbers) != 11 or len(set(numbers)) == 1:
13        return False
14    for i in range(9, 11):
15        value = sum((numbers[num] * ((i + 1) - num) for num in range(i))) % 11
16        if numbers[i] != (11 - value if value > 1 else 0):
17            return False
18    return True
19
20## Пример использования
21cpf = generate_cpf()
22print(f"Сгенерированный CPF: {cpf}")
23print(f"Действителен: {validate_cpf(cpf)}")
24

Эти примеры демонстрируют, как генерировать и проверять CPF на Python, JavaScript и Java. Вы можете адаптировать эти функции под свои конкретные нужды или интегрировать их в более крупные системы, которые требуют обработки CPF.

Юридические и этические соображения

При использовании сгенерированных CPF важно учитывать следующие моменты:

  1. Сгенерированные CPF предназначены только для тестирования и никогда не должны использоваться для выдачи себя за реальных людей или для каких-либо мошеннических действий.
  2. Ясно обозначайте любые тестовые данные, содержащие сгенерированные CPF, чтобы избежать путаницы с реальными личными данными.
  3. Будьте в курсе законов и норм защиты данных в вашей юрисдикции при обработке даже фиктивных личных идентификаторов.
  4. В производственных средах всегда используйте реальные, проверенные CPF, предоставленные пользователями или уполномоченными источниками.
  5. Реализуйте соответствующие меры безопасности для защиты как реальных, так и сгенерированных CPF в ваших системах.

Ссылки

  1. Receita Federal do Brasil. "CPF - Cadastro de Pessoas Físicas." https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf
  2. Serpro. "Validador de CPF." https://www.serpro.gov.br/links-fixos-superiores/validador-cpf
  3. Ministério da Fazenda. "История CPF." https://www.gov.br/fazenda/pt-br/assuntos/receita-federal
  4. Закон № 4.862 от 29 ноября 1965 года. "Изменяет законодательство о подоходном налоге, принимает различные меры налогового и финансового характера и принимает другие положения."
🔗

Связанные инструменты

Откройте для себя больше инструментов, которые могут быть полезны для вашего рабочего процесса