Penjana CPF - Hasilkan ID Cukai Brazil yang Sah untuk Pengujian
Penjana CPF percuma mencipta nombor ID cukai Brazil yang sah yang lulus algoritma pengesahan. Sempurna untuk menguji borang, API, dan pangkalan data tanpa menggunakan data peribadi sebenar.
Klik untuk menjana nombor CPF Brazil yang sah untuk tujuan pengujian
Dokumentasi
CPF Generator - Hasilkan Nombor Pengenalan Cukai Brazil yang Sah untuk Pengujian
Mengapa Anda Memerlukan Penjana CPF untuk Pengujian
Semasa membangunkan aplikasi untuk pasaran Brazil, anda akan segera menghadapi cabaran biasa: menguji borang dan logik pengesahan tanpa menjejaskan data pengguna sebenar. Di sinilah penjana CPF menjadi penting.
CPF (Cadastro de Pessoas FĂsicas) adalah nombor pengenalan unik 11 digit yang dikeluarkan kepada warganegara dan penduduk Brazil untuk tujuan cukai. Alat ini mencipta nombor CPF rawak yang sah secara matematik yang lulus algoritma pengesahan rasmi Brazil—sempurna untuk mengisi pangkalan data ujian, mengesahkan borang input, dan menjalankan ujian automatik tanpa kebimbangan privasi.
Had kritikal: CPF yang dijana hanya untuk persekitaran pengujian. Ia tidak dikaitkan dengan individu sebenar dan tidak boleh digunakan dalam sistem pengeluaran atau untuk tujuan penipuan. Yang menjadikannya bernilai ialah ia lulus semakan pengesahan sambil mengekalkan data ujian anda benar-benar berasingan daripada maklumat peribadi sebenar.
Memahami Struktur dan Format CPF
CPF yang sah terdiri daripada 11 digit dengan struktur tertentu:
- 9 digit pertama: Nombor pengenalan asas
- 2 digit terakhir: Digit semakan untuk pengesahan
- Format standard: XXX.XXX.XXX-XX (dengan titik dan sempang)
Contoh: 123.456.789-09
Digit semakan memastikan nombor CPF adalah sah dari segi matematik, menghalang ralat taip dan entri tidak sah dalam sistem Brazil.
Cara Pengesahan CPF Berfungsi
Algoritma pengesahan CPF menggunakan sistem digit semakan berwajaran modulo-11 untuk memastikan integriti nombor. Memahami algoritma ini adalah penting apabila melaksanakan pengesahan CPF dalam aplikasi anda.
Proses Pengesahan Dijelaskan
Algoritma mengira dua digit semakan (dua digit terakhir CPF) berdasarkan sembilan digit pertama:
Mengira digit semakan pertama:
- Darabkan 9 digit pertama dengan wajaran menurun (10, 9, 8, 7, 6, 5, 4, 3, 2)
- Jumlahkan semua keputusan pendaraban
- Kira baki apabila dibahagi dengan 11
- Jika baki < 2, digit semakan adalah 0; sebaliknya ia adalah 11 tolak baki
Mengira digit semakan kedua:
- Ulang proses untuk 9 digit pertama ditambah digit semakan pertama (jumlah 10 digit)
- Gunakan wajaran 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
- Gunakan logik baki yang sama
Pengesahan dua peringkat ini mengesan kebanyakan ralat transkripsi dan menghalang nombor rawak daripada dianggap CPF yang sah. Algoritma ini didokumenkan dalam Lei nÂş 4.862/1965, yang mewujudkan sistem CPF.
Mengapa Ini Penting untuk Pembangun
Semasa membina pengesahan CPF, pembangun sering terlepas kes pinggir di mana baki adalah 0 atau 1—ini sepatutnya dipetakan ke digit semakan 0, bukan 10 atau 11. Ini adalah sumber biasa ralat pengesahan. Formula (sum * 10 % 11) % 10 mengendalikan kes pinggir ini dengan bersih dengan memastikan hasilnya tidak pernah melebihi 9.
Cara Menggunakan Alat Penjana CPF Ini
Menjana CPF ujian yang sah mengambil beberapa saat:
- Klik butang "Jana CPF"
- Lihat nombor CPF rawak yang sah yang dipaparkan dalam format standard XXX.XXX.XXX-XX
- Salin nombor yang dijana dengan satu klik
- Tampal terus ke borang ujian, permintaan API, atau benih pangkalan data anda
Setiap CPF yang dijana lulus algoritma pengesahan rasmi Brazil, jadi anda boleh menguji logik pengesahan anda dengan yakin. Nombor dijana secara rawak setiap kali, mengurangkan kemungkinan konflik dalam set data ujian anda.
Formula
Formula untuk menjana CPF yang sah adalah seperti berikut:
1def generate_cpf():
2 # Jana 9 digit rawak
3 base_cpf = [random.randint(0, 9) for _ in range(9)]
4
5 # Kira digit semakan pertama
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 # Kira digit semakan kedua
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]
14Pengiraan
Penjana melakukan langkah-langkah berikut:
- Jana 9 digit rawak
- Kira digit semakan pertama menggunakan algoritma yang diterangkan di atas
- Kira digit semakan kedua
- Gabungkan semua digit untuk membentuk CPF lengkap
Contoh
Berikut adalah beberapa contoh CPF yang dijana:
- 123.456.789-09
- 987.654.321-00
- 111.222.333-96
Kegunaan Umum untuk Menguji Nombor CPF
Berdasarkan senario pembangunan sebenar, berikut adalah bila anda memerlukan nombor CPF yang dijana:
Senario Pembangunan dan Pengujian
Penambahan data pangkalan data dan migrasi: Apabila menyediakan persekitaran tempatan atau peringkat, anda memerlukan data ujian yang realistik. CPF yang dijana membolehkan anda membuat ratusan atau ribuan rekod pengguna ujian tanpa menyentuh maklumat peribadi sebenar. Ini sangat berguna apabila menguji kekangan pangkalan data dan indeks unik pada lajur CPF.
Pengujian pengesahan borang: Borang pendaftaran Brazil biasanya memerlukan pengesahan CPF pada bahagian pelanggan dan pelayan. Menguji kes-kes pinggir—seperti CPF yang diformat dengan betul tetapi tidak sah, atau digit yang sama (111.111.111-11)—membantu menangkap pepijat pengesahan sebelum mencapai pengeluaran. CPF yang dijana memberikan kes ujian yang sah untuk mengesahkan logik pengesahan anda berfungsi dengan betul.
Pengujian integrasi API: Apabila membina integrasi dengan pintu gerbang pembayaran Brazil, perkhidmatan kewangan, atau API kerajaan, anda sering memerlukan nombor CPF yang sah dalam permintaan ujian anda. Menggunakan CPF yang dijana menjaga set ujian anda bebas daripada data pengguna sebenar.
Pengujian beban dan prestasi: Untuk menguji tekanan sistem yang memproses data pengguna Brazil, anda memerlukan jumlah besar CPF unik yang sah. Menjana ribuan CPF ujian membolehkan anda mensimulasikan beban yang realistik tanpa kebimbangan privasi.
Pengesahan UI/UX: Menguji cara antara muka anda mengendalikan paparan CPF, penyembunyian, dan pemformatan merentasi saiz skrin dan konteks yang berbeza. CPF yang dijana membantu mengesahkan bahawa logik pemformatan anda (menambah titik dan sempang) berfungsi secara konsisten.
Perangkap Biasa untuk Dielakkan
Satu kesilapan yang sering dilakukan pembangun adalah lupa bahawa digit yang sama (seperti 000.000.000-00 atau 111.111.111-11) secara teknikal sah mengikut algoritma tetapi ditolak oleh sistem Brazil sebenar. Semasa menguji, sertakan semakan untuk corak yang diketahui tidak sah ini walaupun mereka lulus pengesahan matematik.
Satu isu lain: CPF yang dijana berguna untuk menguji logik pengesahan, tetapi mereka tidak akan membantu anda menguji carian CPF sebenar terhadap pangkalan data kerajaan. Untuk ujian integrasi yang menanyakan API kerajaan Brazil sebenar, anda memerlukan CPF ujian yang ditetapkan yang disediakan oleh perkhidmatan tersebut (seperti persekitaran ujian Serpro).
Sistem Pengenalan Brazil Berkaitan
Walaupun CPF adalah pengecam individu utama di Brazil, memahami sistem berkaitan membantu apabila membina aplikasi Brazil yang komprehensif:
RG (Registro Geral): Nombor dokumen identiti yang dikeluarkan negeri. Tidak seperti CPF, yang bersifat persekutuan dan mengikuti format yang konsisten, nombor RG berbeza mengikut negeri dan tidak mempunyai algoritma pengesahan yang diseragamkan. Apabila membina aplikasi untuk Brazil, anda biasanya memerlukan CPF untuk pengesahan backend dan mungkin menerima RG sebagai pengenalan sekunder.
CNPJ (Cadastro Nacional da Pessoa JurĂdica): Setara perniagaan CPF, digunakan untuk syarikat dan entiti undang-undang. CNPJ menggunakan algoritma pengesahan modulo-11 yang serupa tetapi mempunyai 14 digit berbanding 11. Jika anda membina aplikasi B2B untuk Brazil, anda perlu mengendalikan kedua-dua CPF (untuk pemilik perniagaan individu) dan CNPJ (untuk syarikat berdaftar).
PIS/PASEP/NIT: Nombor pengenalan berkaitan pekerjaan yang digunakan oleh sistem keselamatan sosial Brazil. Ini kurang biasa diperlukan dalam aplikasi umum tetapi penting untuk sistem HR dan gaji.
Evolusi CPF di Brazil
Sistem CPF ditubuhkan oleh Lei nÂş 4.862/1965 sebagai sebahagian daripada usaha pemodenan cukai Brazil. Apa yang bermula sebagai pengecam cukai mudah telah menjadi nombor pengenalan nasional Brazil de facto.
Tonggak utama:
- 1965: CPF diperkenalkan untuk pemfailan cukai pendapatan
- 1972: Dibuat wajib untuk semua pembayar cukai
- 1990an: Penggunaan komersial meningkat—bank dan peruncit mula memerlukan CPF untuk transaksi
- 2000an: Transformasi digital menjadikan CPF penting untuk perkhidmatan dalam talian
- 2020an: CPF diperlukan untuk hampir semua perkhidmatan kerajaan, transaksi kewangan, dan bahkan pembelian pengguna
Pengembangan ini menjelaskan mengapa pengesahan CPF kritikal untuk sebarang aplikasi yang melayani pengguna Brazil—ia bukan sekadar pengecam cukai, ia adalah cara Brazil mengenal pasti diri mereka dalam pelbagai konteks. Apabila menguji sistem ini, mempunyai nombor CPF yang sah adalah penting untuk senario ujian yang realistik.
Contoh Kod untuk Penjanaan dan Pengesahan CPF
Jika anda perlu mengintegrasikan penjanaan dan pengesahan CPF terus ke dalam aplikasi anda, berikut adalah pelaksanaan yang sedia untuk pengeluaran dalam bahasa popular. Setiap contoh termasuk fungsi penjanaan dan pengesahan supaya anda dapat melaksanakan aliran kerja penuh.
Pelaksanaan ini mengikuti algoritma Receita Federal rasmi dan termasuk pengendalian kes pinggir yang disebutkan sebelum ini (baki 0 dan 1 dipetakan ke digit semakan 0).
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
19Contoh penggunaan
cpf = generate_cpf() print(f"CPF yang dijana: {cpf}") print(f"Sah: {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; }
// Contoh penggunaan
const cpf = generateCPF();
console.log(CPF yang dijana: ${cpf});
console.log(Sah: ${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("CPF yang dijana: " + cpf);
System.out.println("Sah: " + validateCPF(cpf));
}
}
**Menggunakan implementasi ini:**
- Fungsi pengesahan mengendalikan input yang diformat (XXX.XXX.XXX-XX) dan tidak diformat (XXXXXXXXXXX)
- Tambahkan semakan untuk corak yang tidak sah (digit yang sama) dalam kod produksi
- Pertimbangkan untuk menggunakan perpustakaan yang mantap seperti `validate-docbr` (Python) atau `cpf-cnpj-validator` (JavaScript) untuk sistem produksi—mereka mengendalikan kes-kes pinggir dan telah diuji dengan baik
- Contoh-contoh ini berguna untuk memahami algoritma atau membina implementasi ringan tanpa bergantung kepada pihak luar
## Soalan Lazim Tentang Penjanaan CPF
### Adakah penjana CPF percuma untuk digunakan?
Ya, alat ini sepenuhnya percuma tanpa perlu pendaftaran. Hasilkan sebanyak mana nombor CPF yang anda perlukan untuk tujuan pengujian. Tiada had penggunaan atau yuran tersembunyi.
### Adakah nombor CPF yang dijana dikaitkan dengan orang sebenar?
Tidak. Walaupun nombor tersebut sah dari segi matematik dan lulus algoritma pengesahan, ia dijana secara rawak dan tidak didaftarkan dengan Receita Federal Brazil. Ia wujud semata-mata sebagai data ujian dan hanya patut digunakan dalam persekitaran pembangunan dan pengujian.
### Bolehkah saya menggunakan CPF yang dijana dalam sistem pengeluaran?
Tidak sekali-kali. Sistem pengeluaran mesti menggunakan CPF sebenar yang disahkan yang disediakan oleh pengguna melalui proses pendaftaran yang sah. Menggunakan CPF yang dijana dalam sistem langsung melanggar prinsip integriti data dan boleh menyebabkan isu undang-undang yang serius di bawah [undang-undang perlindungan data Brazil (LGPD)](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd).
### Bagaimana penjana memastikan kesahihan CPF?
Alat ini melaksanakan algoritma pengesahan CPF rasmi Brazil seperti yang ditentukan oleh Receita Federal. Ia mengira kedua-dua digit semakan menggunakan formula modulo-11 berwajaran, memastikan setiap nombor yang dijana lulus ujian pengesahan standard. Algoritma ini sama dengan yang digunakan oleh sistem kerajaan Brazil dan institusi kewangan.
### Apakah perbezaan antara CPF dan CNPJ?
CPF (Cadastro de Pessoas FĂsicas) mengenal pasti individu—warganegara dan penduduk. CNPJ (Cadastro Nacional da Pessoa JurĂdica) mengenal pasti perniagaan dan entiti undang-undang. Anggap CPF seperti Nombor Keselamatan Sosial di AS, manakala CNPJ seperti Nombor Pengenalan Majikan (EIN). Anda memerlukan penjana yang berbeza untuk setiap jenis.
### Adakah sah untuk menjana nombor CPF ujian?
Menjana nombor CPF untuk tujuan pengujian dan pembangunan perisian yang sah adalah sah. Yang menjadi tidak sah adalah menggunakannya secara penipuan—untuk menyamar sebagai orang sebenar, melakukan pencurian identiti, atau mengelak langkah keselamatan. Pastikan CPF yang dijana ditandakan dengan jelas sebagai data ujian dan terhad kepada persekitaran bukan pengeluaran.
### Bagaimana dengan CPF berkembar?
Walaupun secara teori mungkin, berkembar adalah sangat jarang berlaku. Terdapat kira-kira 100 bilion kombinasi CPF yang sah (memandangkan kekangan digit semakan), jadi kebarangkalian menjana nombor yang sama dua kali adalah sekitar 1 dalam 100 bilion setiap percubaan. Dalam senario pengujian praktikal, berkembar tidak akan menjadi isu melainkan anda menjana ratusan juta CPF.
### Adakah CPF yang dijana berfungsi dengan perpustakaan pengesahan?
Ya. CPF yang dijana lulus pengesahan dalam perpustakaan popular merentas bahasa—`validate-docbr` Python, `cpf-cnpj-validator` JavaScript, `geekcom/validator-docs` PHP, dan lain-lain. Ia memenuhi keperluan matematik yang disemak oleh perpustakaan ini. Walau bagaimanapun, ia tidak akan lulus semakan "carian CPF sebenar" terhadap pangkalan data kerajaan, yang merupakan apa yang anda inginkan untuk pengujian terpencil.
### Mengapa sesetengah CPF yang sah ditolak oleh pengesahan saya?
Pengesah anda mungkin menyemak corak tidak sah yang diketahui di luar algoritma matematik. Contohnya, CPF dengan digit yang sama (000.000.000-00, 111.111.111-11, dll.) adalah sah dari segi matematik tetapi disekat oleh kebanyakan sistem Brazil kerana ia adalah nilai ujian yang diketahui. Logik pengesahan yang baik termasuk algoritma digit semakan dan penolakan berdasarkan corak ini.
## Pertimbangan Undang-undang dan Etika
Apabila menggunakan **penjana CPF**, ikuti garis panduan penting ini:
1. **Pengujian sahaja:** CPF yang dijana adalah untuk persekitaran pembangunan dan pengujian semata-mata
2. **Pelabelan yang jelas:** Tandakan semua data ujian yang mengandungi CPF yang dijana untuk mengelakkan kekeliruan dengan data sebenar
3. **Pematuhan privasi:** Fahami undang-undang perlindungan data (seperti LGPD di Brazil) walaupun semasa mengendalikan pengecam palsu
4. **Sistem pengeluaran:** Sentiasa gunakan CPF sebenar yang disahkan daripada sumber yang dibenarkan dalam persekitaran langsung
5. **Langkah keselamatan:** Laksanakan perlindungan yang sesuai untuk CPF sebenar dan yang dijana dalam sistem anda
6. **Tiada peniruan:** Jangan sekali-kali menggunakan nombor yang dijana untuk meniru individu sebenar atau melakukan penipuan
## Menggunakan CPF yang Dijana dalam Sut Ujian Anda
Untuk pembangun yang bekerja pada aplikasi Brazil, mempunyai data ujian yang boleh dipercayai adalah penting. Penjana CPF ini menyediakan nombor yang sah secara matematik yang lulus semakan pengesahan sambil mengekalkan pengujian anda benar-benar berasingan daripada data pengguna sebenar.
Ingat titik-titik penting ini apabila mengintegrasikan CPF yang dijana ke dalam aliran kerja anda:
- **Tandakan data ujian dengan jelas** dalam skema pangkalan data dan dokumentasi anda
- **Laksanakan semakan corak** untuk CPF yang diketahui tidak sah (digit yang sama) dalam pengesahan anda
- **Gunakan CPF yang dijana hanya dalam persekitaran bukan pengeluaran**—peringkat penyediaan, pembangunan, dan saluran CI/CD
- **Rujuk spesifikasi pengesahan rasmi** dari [Receita Federal](https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf) apabila membina logik pengesahan anda sendiri
Klik butang jana di atas untuk mencipta nombor CPF yang sah untuk keperluan ujian anda.
## Rujukan dan Dokumentasi Rasmi
Untuk maklumat yang berkuasa tentang standard CPF dan peraturan data Brazil:
1. **Receita Federal do Brasil.** "CPF - Cadastro de Pessoas FĂsicas." Dokumentasi rasmi keperluan dan pengesahan 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 (Perkhidmatan Pemprosesan Data Persekutuan).** "Validador de CPF." Perkhidmatan pengesahan CPF kerajaan dengan persekitaran ujian. [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).** "Undang-undang Perlindungan Data Umum Brazil." Rangka kerja undang-undang yang mengawal pengendalian data peribadi di Brazil. [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.** "Mengubah perundangan cukai pendapatan." Perundangan asal yang mewujudkan sistem CPF. [https://www.planalto.gov.br/ccivil_03/leis/l4862.htm](https://www.planalto.gov.br/ccivil_03/leis/l4862.htm)
5. **Kementerian Kewangan.** "Sejarah CPF." Konteks sejarah dan perkembangan sistem CPF. [https://www.gov.br/fazenda/pt-br/assuntos/receita-federal](https://www.gov.br/fazenda/pt-br/assuntos/receita-federal)
---
**Tajuk Meta:** Penjana CPF - Hasilkan ID Cukai Brazil yang Sah untuk Ujian
**Keterangan Meta:** Penjana CPF percuma mencipta nombor ID cukai Brazil yang sah dan lulus algoritma pengesahan. Sempurna untuk menguji borang, API, dan pangkalan data tanpa menggunakan data peribadi sebenar.