Generator CPF - Twórz ważne brazylijski identyfikatory podatkowe do testów
Darmowy generator CPF tworzy ważne brazylijski numery identyfikacji podatkowej, które przechodzą algorytmy weryfikacji. Idealny do testowania formularzy, API i baz danych bez używania prawdziwych danych osobowych.
Kliknij, aby wygenerować ważny brazylijski numer CPF do celów testowych
Dokumentacja
Generator CPF - Tworzenie ważnych numerów brazlijskiego identyfikatora podatkowego do testów
Dlaczego potrzebujesz generatora CPF do testów
Podczas tworzenia aplikacji dla brazylijskiego rynku szybko napotkasz powszechne wyzwanie: testowanie formularzy i logiki walidacji bez naruszania prawdziwych danych użytkowników. Tutaj generator CPF staje się niezbędny.
CPF (Cadastro de Pessoas Físicas) to unikalny 11-cyfrowy numer identyfikacyjny wydawany obywatelom i mieszkańcom Brazylii do celów podatkowych. To narzędzie tworzy matematycznie poprawne, losowe numery CPF, które przechodzą oficjalny algorytm walidacji Brazylii — idealne do zapełniania testowych baz danych, weryfikacji formularzy wprowadzania danych i przeprowadzania zautomatyzowanych testów bez obaw o prywatność.
Krytyczne ograniczenie: Wygenerowane numery CPF są przeznaczone wyłącznie do środowisk testowych. Nie są powiązane z rzeczywistymi osobami i nigdy nie mogą być używane w systemach produkcyjnych lub w celach oszukańczych. Ich wartość polega na tym, że przechodzą kontrole walidacji, jednocześnie całkowicie oddzielając dane testowe od prawdziwych informacji osobowych.
Zrozumienie struktury i formatu CPF
Prawidłowy CPF składa się z 11 cyfr o określonej strukturze:
- Pierwsze 9 cyfr: Bazowe numery identyfikacyjne
- Ostatnie 2 cyfry: Cyfry kontrolne do weryfikacji
- Standardowy format: XXX.XXX.XXX-XX (z kropkami i myślnikiem)
Przykład: 123.456.789-09
Cyfry kontrolne zapewniają matematyczną ważność numeru CPF, zapobiegając literówkom i nieprawidłowym wpisom w brazylskich systemach.
Jak działa walidacja CPF
Algorytm walidacji CPF używa systemu cyfry kontrolnej modulo-11 z wagami w celu zapewnienia integralności numeru. Zrozumienie tego algorytmu jest kluczowe podczas implementacji walidacji CPF w aplikacjach.
Wyjaśnienie procesu walidacji
Algorytm oblicza dwie cyfry kontrolne (ostatnie dwie cyfry CPF) na podstawie pierwszych dziewięciu cyfr:
Obliczanie pierwszej cyfry kontrolnej:
- Pomnóż pierwsze 9 cyfr przez malejące wagi (10, 9, 8, 7, 6, 5, 4, 3, 2)
- Zsumuj wszystkie wyniki mnożenia
- Oblicz resztę z dzielenia przez 11
- Jeśli reszta < 2, cyfra kontrolna wynosi 0; w przeciwnym razie jest to 11 minus reszta
Obliczanie drugiej cyfry kontrolnej:
- Powtórz proces dla pierwszych 9 cyfr plus pierwsza cyfra kontrolna (łącznie 10 cyfr)
- Użyj wag 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
- Zastosuj tę samą logikę reszty
Ta dwuetapowa walidacja wychwytuje większość błędów przepisywania i zapobiega przepuszczaniu losowych numerów jako ważnych CPF. Algorytm jest udokumentowany w Lei nº 4.862/1965, która ustanowiła system CPF.
Dlaczego to jest ważne dla programistów
Podczas budowania walidacji CPF programiści często pomijają przypadek brzegowy, gdzie reszta wynosi 0 lub 1 — te powinny być mapowane na cyfrę kontrolną 0, a nie 10 lub 11. Jest to częste źródło błędów walidacji. Formuła (sum * 10 % 11) % 10 czysto obsługuje ten przypadek brzegowy, zapewniając, że wynik nigdy nie przekracza 9.
Jak korzystać z narzędzia do generowania CPF
Generowanie ważnych numerów CPF do testów zajmuje kilka sekund:
- Kliknij przycisk "Generuj CPF"
- Wyświetl wygenerowany, losowy numer CPF w standardowym formacie XXX.XXX.XXX-XX
- Skopiuj wygenerowany numer jednym kliknięciem
- Wklej bezpośrednio do formularzy testowych, żądań API lub seedów bazy danych
Każdy wygenerowany numer CPF przechodzi oficjalny algorytm weryfikacji Brazylii, więc możesz pewnie testować swoją logikę walidacji. Numery są losowo generowane za każdym razem, zmniejszając ryzyko konfliktów w zestawach danych testowych.
Formuła
Formuła generowania ważnego numeru CPF jest następująca:
1def generate_cpf():
2 # Generuj 9 losowych cyfr
3 base_cpf = [random.randint(0, 9) for _ in range(9)]
4
5 # Oblicz pierwszą cyfrę kontrolną
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 # Oblicz drugą cyfrę kontrolną
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]
14Obliczenie
Generator wykonuje następujące kroki:
- Generuje 9 losowych cyfr
- Oblicza pierwszą cyfrę kontrolną przy użyciu opisanego algorytmu
- Oblicza drugą cyfrę kontrolną
- Łączy wszystkie cyfry, tworząc kompletny numer CPF
Przykłady
Oto przykłady wygenerowanych numerów CPF:
- 123.456.789-09
- 987.654.321-00
- 111.222.333-96
Typowe Przypadki Użycia Testowania Numerów CPF
W oparciu o rzeczywiste scenariusze programistyczne, oto kiedy będziesz potrzebować wygenerowanych numerów CPF:
Scenariusze Programistyczne i Testowe
Zasiedlanie bazy danych i migracje: Podczas konfigurowania lokalnych lub przejściowych środowisk, potrzebujesz realistycznych danych testowych. Wygenerowane CPF pozwalają utworzyć setki lub tysiące rekordów testowych użytkowników bez naruszania prawdziwych danych osobowych. Jest to szczególnie przydatne podczas testowania ograniczeń bazy danych i unikalnych indeksów w kolumnach CPF.
Testowanie walidacji formularzy: Brazylijski formularz rejestracyjny zazwyczaj wymaga walidacji CPF po stronie klienta i serwera. Testowanie przypadków granicznych — takich jak poprawnie sformatowane, ale nieprawidłowe CPF lub cyfry identyczne (111.111.111-11) — pomaga wychwycić błędy walidacji przed wejściem do produkcji. Wygenerowane CPF zapewniają prawidłowe przypadki testowe do weryfikacji logiki walidacji.
Testowanie integracji API: Podczas budowania integracji z brazylijnymi bramkami płatniczymi, usługami finansowymi lub rządowymi API, często potrzebujesz prawidłowych numerów CPF w żądaniach testowych. Używanie wygenerowanych CPF utrzymuje zestaw testów niezależnym od rzeczywistych danych użytkowników.
Testowanie obciążenia i wydajności: Do testowania obciążenia systemów przetwarzających brazylijski dane użytkowników, potrzebujesz dużej liczby unikalnych, prawidłowych CPF. Generowanie tysięcy testowych CPF pozwala symulować realistyczne obciążenie bez naruszania prywatności.
Walidacja interfejsu użytkownika: Testowanie, jak interfejs radzi sobie z wyświetlaniem, maskowaniem i formatowaniem CPF na różnych rozmiarach ekranu i w różnych kontekstach. Wygenerowane CPF pomagają zweryfikować, czy logika formatowania (dodawanie kropek i myślników) działa spójnie.
Typowe Pułapki do Uniknięcia
Jednym z błędów, które często popełniają programiści, jest zapominanie, że cyfry identyczne (jak 000.000.000-00 lub 111.111.111-11) są technicznie prawidłowe według algorytmu, ale są odrzucane przez prawdziwe brazylijski systemy. Podczas testowania należy uwzględnić sprawdzenie tych znanych nieprawidłowych wzorców, nawet jeśli przechodzą matematyczną walidację.
Innym problemem jest to, że wygenerowane CPF świetnie sprawdzają się w testowaniu logiki walidacji, ale nie pomogą w testowaniu rzeczywistych wyszukiwań CPF w bazach rządowych. Do testów integracyjnych, które odpytują prawdziwe brazylijski rządowe API, będziesz potrzebować wyznaczonych CPF testowych dostarczonych przez te usługi (jak środowisko testowe Serpro).
(Tłumaczenie kontynuowane w następnym komunikacie z powodu ograniczeń długości)
Przykładowe użycie
cpf = generate_cpf() print(f"Wygenerowany CPF: {cpf}") print(f"Czy ważny: {validate_cpf(cpf)}")
1
2javascript function generateCPF() { const cpf = Array.from({length: 9}, () => Math.floor(Math.random() * 10)); for (let i = 0; i < 2; i++) { let sum = cpf.reduce((acc, cur, idx) => acc + cur * (cpf.length + 1 - idx), 0); let digit = 11 - (sum % 11); cpf.push(digit > 9 ? 0 : digit); } return cpf.join(''); }
function validateCPF(cpf) { const numbers = cpf.match(/\d/g).map(Number); if (numbers.length !== 11 || new Set(numbers).size === 1) return false; for (let i = 9; i < 11; i++) { let sum = numbers.slice(0, i).reduce((acc, cur, idx) => acc + cur * (i + 1 - idx), 0); let digit = 11 - (sum % 11); if (numbers[i] !== (digit > 9 ? 0 : digit)) return false; } return true; }
// Przykładowe użycie
const cpf = generateCPF();
console.log(Wygenerowany CPF: ${cpf});
console.log(Czy ważny: ${validateCPF(cpf)});
1
2java import java.util.Random;
public class CPFGenerator { private static final Random random = new Random();
public static String generateCPF() {
int[] cpf = new int[11];
for (int i = 0; i < 9; i++) {
cpf[i] = random.nextInt(10);
}
cpf[9] = calculateCheckDigit(cpf, 10);
cpf[10] = calculateCheckDigit(cpf, 11);
return formatCPF(cpf);
}
private static int calculateCheckDigit(int[] cpf, int factor) {
int sum = 0;
for (int i = 0; i < factor - 1; i++) {
sum += cpf[i] * (factor - i);
}
int result = 11 - (sum % 11);
return result > 9 ? 0 : result;
}
private static String formatCPF(int[] cpf) {
return String.format("%d%d%d.%d%d%d.%d%d%d-%d%d",
cpf[0], cpf[1], cpf[2], cpf[3], cpf[4], cpf[5], cpf[6], cpf[7], cpf[8], cpf[9], cpf[10]);
}
public static boolean validateCPF(String cpf) {
cpf = cpf.replaceAll("[^0-9]", "");
if (cpf.length() != 11) return false;
int[] numbers = cpf.chars().map(Character::getNumericValue).toArray();
if (allEqual(numbers)) return false;
int digit10 = calculateCheckDigit(numbers, 10);
int digit11 = calculateCheckDigit(numbers, 11);
return numbers[9] == digit10 && numbers[10] == digit11;
}
private static boolean allEqual(int[] array) {
for (int i = 1; i < array.length; i++) {
if (array[i] != array[0]) return false;
}
return true;
}
public static void main(String[] args) {
String cpf = generateCPF();
System.out.println("Wygenerowany CPF: " + cpf);
System.out.println("Czy ważny: " + validateCPF(cpf));
}
}
**Korzystanie z tych implementacji:**
- Funkcje walidacyjne obsługują zarówno sformatowane (XXX.XXX.XXX-XX), jak i niesformatowane (XXXXXXXXXXX) dane wejściowe
- Dodaj sprawdzenia znanych nieprawidłowych wzorców (wszystkie identyczne cyfry) w kodzie produkcyjnym
- Rozważ użycie sprawdzonych bibliotek takich jak `validate-docbr` (Python) lub `cpf-cnpj-validator` (JavaScript) w systemach produkcyjnych — radzą sobie z przypadkami brzegowymi i są dokładnie przetestowane
- Te przykłady są świetne do zrozumienia algorytmu lub zbudowania lekkich implementacji bez zewnętrznych zależności
## Często zadawane pytania dotyczące generowania CPF
### Czy generator CPF jest darmowy?
Tak, to narzędzie jest całkowicie darmowe i nie wymaga rejestracji. Generuj dowolną liczbę numerów CPF potrzebnych do testów. Nie ma żadnych ograniczeń użycia ani ukrytych opłat.
### Czy generowane numery CPF są powiązane z prawdziwymi osobami?
Nie. Chociaż numery są matematycznie poprawne i przechodzą algorytmy walidacji, są losowo generowane i nie są zarejestrowane w brazylijskim Receita Federal. Istnieją wyłącznie jako dane testowe i powinny być używane tylko w środowiskach programistycznych i testowych.
### Czy mogę używać wygenerowanych CPF w systemach produkcyjnych?
Nigdy. Systemy produkcyjne muszą używać prawdziwych, zweryfikowanych CPF dostarczonych przez faktycznych użytkowników poprzez legalne procesy rejestracji. Używanie generowanych CPF w systemach na żywo narusza zasady integralności danych i może powodować poważne problemy prawne zgodnie z [brazylijska ustawa o ochronie danych (LGPD)](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd).
### Jak generator zapewnia ważność CPF?
Narzędzie implementuje oficjalny brazylijski algorytm walidacji CPF określony przez Receita Federal. Oblicza oba cyfry kontrolne przy użyciu formuły ważonego modulo-11, zapewniając, że każdy wygenerowany numer przechodzi standardowe testy walidacji. Algorytm jest taki sam, jakiego używają brazylijskie systemy rządowe i instytucje finansowe.
### Jaka jest różnica między CPF a CNPJ?
CPF (Cadastro de Pessoas Físicas) identyfikuje osoby fizyczne — obywateli i mieszkańców. CNPJ (Cadastro Nacional da Pessoa Jurídica) identyfikuje firmy i podmioty prawne. Pomyśl o CPF jak o numerze ubezpieczenia społecznego w USA, podczas gdy CNPJ jest podobny do numeru identyfikacyjnego pracodawcy (EIN). Będziesz potrzebować różnych generatorów dla każdego rodzaju.
### Czy legalne jest generowanie testowych numerów CPF?
Generowanie numerów CPF do legalnych celów testowania oprogramowania i programowania jest legalne. Tym, co jest nielegalne, jest używanie ich w sposób oszukańczy — do podszywania się pod prawdziwe osoby, popełnienia kradzieży tożsamości lub obejścia środków bezpieczeństwa. Zachowaj wygenerowane CPF wyraźnie oznaczone jako dane testowe i ograniczone do środowisk nieprodukcyjnych.
### A co z duplikatami CPF?
Chociaż teoretycznie możliwe, duplikaty są niezwykle rzadkie. Istnieje około 100 miliardów możliwych prawidłowych kombinacji CPF (biorąc pod uwagę ograniczenia cyfry kontrolnej), więc prawdopodobieństwo wygenerowania tego samego numeru dwa razy wynosi około 1 na 100 miliardów na próbę. W praktycznych scenariuszach testowych duplikaty nie będą stanowić problemu, chyba że generujesz setki milionów CPF.
### Czy wygenerowane CPF działają z bibliotekami walidacyjnymi?
Tak. Wygenerowane CPF przechodzą walidację w popularnych bibliotekach w różnych językach — Python `validate-docbr`, JavaScript `cpf-cnpj-validator`, PHP `geekcom/validator-docs` i innych. Spełniają matematyczne wymagania sprawdzane przez te biblioteki. Jednak nie przejdą sprawdzeń "rzeczywistego wyszukiwania CPF" w bazach rządowych, co jest dokładnie tym, czego chcesz podczas izolowanego testowania.
### Dlaczego niektóre ważne CPF są odrzucane przez moją walidację?
Twój moduł walidacyjny może sprawdzać znane nieprawidłowe wzorce poza algorytmem matematycznym. Na przykład CPF ze wszystkimi identycznymi cyframi (000.000.000-00, 111.111.111-11 itp.) są matematycznie ważne, ale są na czarnej liście w większości brazylskich systemów, ponieważ są znane jako wartości testowe. Dobra logika walidacji obejmuje zarówno algorytm cyfry kontrolnej, jak i te odrzucenia oparte na wzorcach.
## Rozważania prawne i etyczne
Korzystając z **generatora CPF**, postępuj zgodnie z poniższymi ważnymi wytycznymi:
1. **Tylko testowanie:** Wygenerowane CPF są przeznaczone wyłącznie do środowisk programistycznych i testowych
2. **Wyraźne oznaczenie:** Oznacz wszystkie dane testowe zawierające wygenerowane CPF, aby zapobiec pomyleniu z prawdziwymi danymi
3. **Zgodność z ochroną prywatności:** Zapoznaj się z przepisami o ochronie danych (takimi jak LGPD w Brazylii), nawet podczas pracy z fałszywymi identyfikatorami
4. **Systemy produkcyjne:** Zawsze używaj prawdziwych, zweryfikowanych CPF z autoryzowanych źródeł w środowiskach produkcyjnych
5. **Środki bezpieczeństwa:** Wdrażaj odpowiednie zabezpieczenia zarówno dla prawdziwych, jak i wygenerowanych CPF w swoich systemach
6. **Bez podszywania się:** Nigdy nie używaj wygenerowanych numerów do podszywania się pod prawdziwe osoby lub popełniania oszustw
## Używanie wygenerowanych CPF w zestawie testowym
Dla programistów pracujących nad brazylijnymi aplikacjami, posiadanie wiarygodnych danych testowych jest absolutnie konieczne. Ten generator CPF zapewnia matematycznie poprawne numery, które przechodzą weryfikację, jednocześnie utrzymując testy całkowicie oddzielone od prawdziwych danych użytkowników.
Pamiętaj o tych kluczowych punktach podczas integracji wygenerowanych CPF w swoim przepływie pracy:
- **Wyraźnie oznacz dane testowe** w schematach bazy danych i dokumentacji
- **Zaimplementuj sprawdzanie wzorców** dla znanych nieprawidłowych CPF (wszystkie identyczne cyfry) w walidacji
- **Używaj wygenerowanych CPF tylko w środowiskach nieprodukcyjnych** — staging, development i potoki CI/CD
- **Odwołuj się do oficjalnych specyfikacji walidacji** z [Receita Federal](https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf) podczas budowania własnej logiki weryfikacji
Kliknij przycisk generowania powyżej, aby utworzyć ważne numery CPF dla swoich potrzeb testowych.
## Referencje i oficjalna dokumentacja
Aby uzyskać autorytatywne informacje o standardach CPF i brazylijskich przepisach dotyczących danych:
1. **Receita Federal do Brasil.** „CPF - Cadastro de Pessoas Físicas." Oficjalna dokumentacja wymagań i walidacji CPF. [https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf](https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf)
2. **Serpro (Federalna Usługa Przetwarzania Danych).** „Validador de CPF." Rządowa usługa walidacji CPF ze środowiskiem testowym. [https://www.serpro.gov.br/links-fixos-superiores/validador-cpf](https://www.serpro.gov.br/links-fixos-superiores/validador-cpf)
3. **Lei Geral de Proteção de Dados (LGPD).** „Brazylijska Ogólna Ustawa o Ochronie Danych." Ramy prawne regulujące przetwarzanie danych osobowych w Brazylii. [https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd)
4. **Lei nº 4.862/1965.** „Altera a legislação do impôsto de renda." Oryginalna ustawa ustanawiająca system CPF. [https://www.planalto.gov.br/ccivil_03/leis/l4862.htm](https://www.planalto.gov.br/ccivil_03/leis/l4862.htm)
5. **Ministério da Fazenda.** „História do CPF." Kontekst historyczny i ewolucja systemu CPF. [https://www.gov.br/fazenda/pt-br/assuntos/receita-federal](https://www.gov.br/fazenda/pt-br/assuntos/receita-federal)
---
**Tytuł Meta:** Generator CPF - Twórz ważne brazylijski identyfikator podatkowy do testów
**Opis Meta:** Darmowy generator CPF tworzy ważne brazylijski numery identyfikacyjne, które przechodzą algorytmy walidacji. Idealny do testowania formularzy, API i baz danych bez używania prawdziwych danych osobowych.