Valid CPF Generator for Testing Purposes and Data Validation
Hasilkan nomor CPF (Cadastro de Pessoas Físicas) yang valid dan acak untuk tujuan pengujian. Alat ini membuat CPF yang mematuhi format resmi Brasil dan aturan validasi, tanpa menggunakan informasi pribadi yang nyata.
Hasilkan CPF
Dokumentasi
Generator CPF
Pendahuluan
CPF (Cadastro de Pessoas Físicas) adalah pengenal unik yang diberikan kepada warga negara dan penduduk Brasil untuk tujuan perpajakan. Generator ini membuat nomor CPF acak yang valid untuk tujuan pengujian. Penting untuk dicatat bahwa CPF yang dihasilkan ini tidak terkait dengan individu nyata dan hanya boleh digunakan di lingkungan pengujian.
Struktur CPF
Sebuah CPF terdiri dari 11 digit:
- 9 digit pertama adalah angka dasar
- 2 digit terakhir adalah digit cek
Formatnya biasanya ditampilkan sebagai: XXX.XXX.XXX-XX
Algoritma Validasi CPF
Algoritma validasi CPF memastikan integritas nomor tersebut. Berikut cara kerjanya:
- Kalikan 9 digit pertama dengan bobot (10 hingga 2)
- Jumlahkan hasilnya
- Hitung sisa dari jumlah dibagi 11
- Jika sisa kurang dari 2, digit cek pertama adalah 0; jika tidak, itu adalah 11 dikurangi sisa
- Ulangi proses untuk 10 digit pertama (termasuk digit cek pertama) dengan bobot 11 hingga 2
- Hitung digit cek kedua menggunakan aturan yang sama seperti yang pertama
Cara Menggunakan Generator Ini
- Klik tombol "Generate CPF"
- CPF acak yang valid akan ditampilkan
- Anda dapat menyalin CPF yang dihasilkan untuk digunakan dalam skenario pengujian Anda
Formula
Formula untuk menghasilkan CPF yang valid adalah sebagai berikut:
1def generate_cpf():
2 # Menghasilkan 9 digit acak
3 base_cpf = [random.randint(0, 9) for _ in range(9)]
4
5 # Hitung digit cek 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 # Hitung digit cek 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]
14
Perhitungan
Generator melakukan langkah-langkah berikut:
- Menghasilkan 9 digit acak
- Menghitung digit cek pertama menggunakan algoritma yang dijelaskan di atas
- Menghitung digit cek kedua
- Menggabungkan semua digit untuk membentuk CPF lengkap
Contoh
Berikut adalah beberapa contoh CPF yang dihasilkan:
- 123.456.789-09
- 987.654.321-00
- 111.222.333-96
Kasus Penggunaan
Generator CPF berguna dalam berbagai skenario pengembangan dan pengujian perangkat lunak:
- Pengujian Basis Data: Mengisi basis data pengujian dengan nomor CPF yang valid
- Validasi Formulir: Menguji validasi input untuk formulir pendaftaran pengguna Brasil
- Pengujian API: Menggunakan CPF yang dihasilkan dalam permintaan API yang memerlukan identifikasi Brasil yang valid
- Pengujian Kinerja: Menghasilkan set unik CPF yang valid dalam jumlah besar untuk pengujian beban
- Pengujian UI/UX: Memastikan format dan tampilan nomor CPF yang tepat dalam antarmuka pengguna
Alternatif
Sementara CPF adalah pengenal individu utama di Brasil, ada pengenal lain yang dapat digunakan dalam konteks tertentu:
- RG (Registro Geral): Dokumen identitas yang dikeluarkan oleh negara bagian
- CNPJ (Cadastro Nacional da Pessoa Jurídica): Digunakan untuk bisnis dan entitas hukum
- PIS/PASEP: Digunakan untuk tujuan terkait pekerjaan
Sejarah
CPF diperkenalkan di Brasil pada tahun 1965 sebagai bagian dari upaya yang lebih luas untuk memodernisasi sistem perpajakan negara. Awalnya, itu digunakan terutama untuk tujuan pajak penghasilan, tetapi seiring waktu, penggunaannya meluas ke berbagai area birokrasi dan perdagangan Brasil.
Tonggak sejarah utama dalam sejarah CPF:
- 1965: CPF diperkenalkan untuk individu
- 1972: CPF menjadi wajib bagi semua individu yang membayar pajak
- 1990-an: CPF mulai digunakan lebih luas dalam transaksi komersial dan keuangan
- 2000-an: Sistem digital lebih mengintegrasikan CPF ke dalam kehidupan sehari-hari di Brasil
Saat ini, CPF adalah bagian penting dari interaksi warga negara dan penduduk Brasil dengan layanan pemerintah, lembaga keuangan, dan banyak transaksi komersial.
Contoh Kode
Berikut adalah potongan kode untuk menghasilkan dan memvalidasi CPF dalam berbagai bahasa pemrograman:
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## Contoh penggunaan
21cpf = generate_cpf()
22print(f"Generated CPF: {cpf}")
23print(f"Is valid: {validate_cpf(cpf)}")
24
1function generateCPF() {
2 const cpf = Array.from({length: 9}, () => Math.floor(Math.random() * 10));
3 for (let i = 0; i < 2; i++) {
4 let sum = cpf.reduce((acc, cur, idx) => acc + cur * (cpf.length + 1 - idx), 0);
5 let digit = 11 - (sum % 11);
6 cpf.push(digit > 9 ? 0 : digit);
7 }
8 return cpf.join('');
9}
10
11function validateCPF(cpf) {
12 const numbers = cpf.match(/\d/g).map(Number);
13 if (numbers.length !== 11 || new Set(numbers).size === 1) return false;
14 for (let i = 9; i < 11; i++) {
15 let sum = numbers.slice(0, i).reduce((acc, cur, idx) => acc + cur * (i + 1 - idx), 0);
16 let digit = 11 - (sum % 11);
17 if (numbers[i] !== (digit > 9 ? 0 : digit)) return false;
18 }
19 return true;
20}
21
22// Contoh penggunaan
23const cpf = generateCPF();
24console.log(`Generated CPF: ${cpf}`);
25console.log(`Is valid: ${validateCPF(cpf)}`);
26
1import java.util.Random;
2
3public class CPFGenerator {
4 private static final Random random = new Random();
5
6 public static String generateCPF() {
7 int[] cpf = new int[11];
8 for (int i = 0; i < 9; i++) {
9 cpf[i] = random.nextInt(10);
10 }
11 cpf[9] = calculateCheckDigit(cpf, 10);
12 cpf[10] = calculateCheckDigit(cpf, 11);
13 return formatCPF(cpf);
14 }
15
16 private static int calculateCheckDigit(int[] cpf, int factor) {
17 int sum = 0;
18 for (int i = 0; i < factor - 1; i++) {
19 sum += cpf[i] * (factor - i);
20 }
21 int result = 11 - (sum % 11);
22 return result > 9 ? 0 : result;
23 }
24
25 private static String formatCPF(int[] cpf) {
26 return String.format("%d%d%d.%d%d%d.%d%d%d-%d%d",
27 cpf[0], cpf[1], cpf[2], cpf[3], cpf[4], cpf[5], cpf[6], cpf[7], cpf[8], cpf[9], cpf[10]);
28 }
29
30 public static boolean validateCPF(String cpf) {
31 cpf = cpf.replaceAll("[^0-9]", "");
32 if (cpf.length() != 11) return false;
33 int[] numbers = cpf.chars().map(Character::getNumericValue).toArray();
34 if (allEqual(numbers)) return false;
35 int digit10 = calculateCheckDigit(numbers, 10);
36 int digit11 = calculateCheckDigit(numbers, 11);
37 return numbers[9] == digit10 && numbers[10] == digit11;
38 }
39
40 private static boolean allEqual(int[] array) {
41 for (int i = 1; i < array.length; i++) {
42 if (array[i] != array[0]) return false;
43 }
44 return true;
45 }
46
47 public static void main(String[] args) {
48 String cpf = generateCPF();
49 System.out.println("Generated CPF: " + cpf);
50 System.out.println("Is valid: " + validateCPF(cpf));
51 }
52}
53
Contoh-contoh ini menunjukkan cara menghasilkan dan memvalidasi CPF dalam Python, JavaScript, dan Java. Anda dapat menyesuaikan fungsi-fungsi ini untuk kebutuhan spesifik Anda atau mengintegrasikannya ke dalam sistem yang lebih besar yang memerlukan penanganan CPF.
Pertimbangan Hukum dan Etika
Saat menggunakan CPF yang dihasilkan, penting untuk memperhatikan poin-poin berikut:
- CPF yang dihasilkan hanya untuk tujuan pengujian dan tidak boleh digunakan untuk menyamar sebagai individu nyata atau untuk kegiatan penipuan apa pun.
- Jelas label data uji yang berisi CPF yang dihasilkan untuk mencegah kebingungan dengan data pribadi yang nyata.
- Waspadai undang-undang dan regulasi perlindungan data di yurisdiksi Anda saat menangani bahkan pengenal pribadi palsu.
- Di lingkungan produksi, selalu gunakan CPF yang nyata dan terverifikasi yang diberikan oleh pengguna atau sumber yang berwenang.
- Terapkan langkah-langkah keamanan yang tepat untuk melindungi baik CPF yang nyata maupun yang dihasilkan dalam sistem Anda.
Referensi
- Receita Federal do Brasil. "CPF - Cadastro de Pessoas Físicas." https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf
- Serpro. "Validador de CPF." https://www.serpro.gov.br/links-fixos-superiores/validador-cpf
- Ministério da Fazenda. "História do CPF." https://www.gov.br/fazenda/pt-br/assuntos/receita-federal
- Lei nº 4.862, de 29 de novembro de 1965. "Altera a legislação do impôsto de renda, adota diversas medidas de ordem fiscal e fazendária, e dá outras providências."
Umpan Balik
Klik toast umpan balik untuk mulai memberikan umpan balik tentang alat ini
Alat Terkait
Temukan lebih banyak alat yang mungkin berguna untuk alur kerja Anda