Hasilkan CPF
Penjana CPF
Pengenalan
CPF (Cadastro de Pessoas Físicas) adalah pengenalan unik yang diberikan kepada warganegara dan penduduk Brazil untuk tujuan cukai. Penjana ini mencipta nombor CPF yang sah dan rawak untuk tujuan ujian. Penting untuk diperhatikan bahawa CPF yang dihasilkan ini tidak dikaitkan dengan individu sebenar dan hanya boleh digunakan dalam persekitaran ujian.
Struktur CPF
Sebuah CPF terdiri daripada 11 digit:
- 9 digit pertama adalah nombor asas
- 2 digit terakhir adalah digit semak
Formatnya biasanya diwakili sebagai: XXX.XXX.XXX-XX
Algoritma Pengesahan CPF
Algoritma pengesahan CPF memastikan integriti nombor tersebut. Berikut adalah cara ia berfungsi:
- Kalikan 9 digit pertama dengan berat (10 hingga 2)
- Jumlahkan hasilnya
- Hitung baki jumlah dibahagi dengan 11
- Jika baki kurang daripada 2, digit semak pertama adalah 0; jika tidak, ia adalah 11 tolak baki
- Ulang proses untuk 10 digit pertama (termasuk digit semak pertama) dengan berat 11 hingga 2
- Hitung digit semak kedua menggunakan peraturan yang sama seperti yang pertama
Cara Menggunakan Penjana Ini
- Klik butang "Jana CPF"
- CPF yang sah dan rawak akan dipaparkan
- Anda boleh menyalin CPF yang dihasilkan untuk digunakan dalam senario ujian anda
Formula
Formula untuk menghasilkan CPF yang sah adalah seperti berikut:
def generate_cpf():
# Hasilkan 9 digit rawak
base_cpf = [random.randint(0, 9) for _ in range(9)]
# Kira digit semak pertama
sum_1 = sum((10 - i) * digit for i, digit in enumerate(base_cpf))
check_digit_1 = (sum_1 * 10 % 11) % 10
# Kira digit semak kedua
sum_2 = sum((11 - i) * digit for i, digit in enumerate(base_cpf + [check_digit_1]))
check_digit_2 = (sum_2 * 10 % 11) % 10
return base_cpf + [check_digit_1, check_digit_2]
Pengiraan
Penjana melakukan langkah-langkah berikut:
- Hasilkan 9 digit rawak
- Kira digit semak pertama menggunakan algoritma yang diterangkan di atas
- Kira digit semak kedua
- Gabungkan 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
Kes Penggunaan
Penjana CPF berguna dalam pelbagai senario pembangunan perisian dan ujian:
- Ujian Pangkalan Data: Isi pangkalan data ujian dengan nombor CPF yang sah
- Pengesahan Borang: Uji pengesahan input untuk borang pendaftaran pengguna Brazil
- Ujian API: Gunakan CPF yang dihasilkan dalam permintaan API yang memerlukan pengenalan Brazil yang sah
- Ujian Prestasi: Hasilkan set besar CPF yang unik dan sah untuk ujian beban
- Ujian UI/UX: Pastikan format dan paparan nombor CPF yang betul dalam antara muka pengguna
Alternatif
Walaupun CPF adalah pengenalan individu utama di Brazil, terdapat pengenalan lain yang mungkin digunakan dalam konteks tertentu:
- RG (Registro Geral): Dokumen identiti yang dikeluarkan oleh negeri
- CNPJ (Cadastro Nacional da Pessoa Jurídica): Digunakan untuk perniagaan dan entiti undang-undang
- PIS/PASEP: Digunakan untuk tujuan berkaitan pekerjaan
Sejarah
CPF diperkenalkan di Brazil pada tahun 1965 sebagai sebahagian daripada usaha yang lebih luas untuk memodenkan sistem cukai negara. Pada mulanya, ia digunakan terutamanya untuk tujuan cukai pendapatan, tetapi dari masa ke masa, penggunaannya berkembang ke pelbagai bidang birokrasi dan perdagangan Brazil.
Pencapaian penting dalam sejarah CPF:
- 1965: CPF diperkenalkan untuk individu
- 1972: CPF menjadi wajib untuk semua individu yang membayar cukai
- 1990-an: CPF mula digunakan secara lebih meluas dalam transaksi komersial dan kewangan
- 2000-an: Sistem digital mengintegrasikan CPF ke dalam kehidupan seharian di Brazil
Hari ini, CPF adalah bahagian penting dalam interaksi warganegara dan penduduk Brazil dengan perkhidmatan kerajaan, institusi kewangan, dan banyak transaksi komersial.
Contoh Kod
Berikut adalah potongan kod untuk menghasilkan dan mengesahkan CPF dalam pelbagai bahasa pengaturcaraan:
import random
def generate_cpf():
cpf = [random.randint(0, 9) for _ in range(9)]
for _ in range(2):
value = sum((cpf[num] * ((len(cpf) + 1) - num) for num in range(len(cpf)))) % 11
cpf.append(11 - value if value > 1 else 0)
return ''.join(map(str, cpf))
def validate_cpf(cpf):
numbers = [int(digit) for digit in cpf if digit.isdigit()]
if len(numbers) != 11 or len(set(numbers)) == 1:
return False
for i in range(9, 11):
value = sum((numbers[num] * ((i + 1) - num) for num in range(i))) % 11
if numbers[i] != (11 - value if value > 1 else 0):
return False
return True
## Contoh penggunaan
cpf = generate_cpf()
print(f"CPF yang Dihasilkan: {cpf}")
print(f"Adakah sah: {validate_cpf(cpf)}")
Contoh-contoh ini menunjukkan cara untuk menghasilkan dan mengesahkan CPF dalam Python, JavaScript, dan Java. Anda boleh menyesuaikan fungsi ini mengikut keperluan khusus anda atau mengintegrasikannya ke dalam sistem yang lebih besar yang memerlukan pengendalian CPF.
Pertimbangan Undang-Undang dan Etika
Apabila menggunakan CPF yang dihasilkan, penting untuk menjaga perkara-perkara berikut:
- CPF yang dihasilkan adalah untuk tujuan ujian sahaja dan tidak seharusnya digunakan untuk menyamar individu sebenar atau untuk sebarang aktiviti penipuan.
- Labelkan dengan jelas sebarang data ujian yang mengandungi CPF yang dihasilkan untuk mengelakkan kekeliruan dengan data peribadi sebenar.
- Sedar akan undang-undang dan peraturan perlindungan data di kawasan anda apabila mengendalikan walaupun pengenalan peribadi palsu.
- Dalam persekitaran pengeluaran, sentiasa gunakan CPF yang sebenar dan disahkan yang diberikan oleh pengguna atau sumber yang diberi kuasa.
- Laksanakan langkah-langkah keselamatan yang betul untuk melindungi CPF yang sebenar dan yang dihasilkan dalam sistem anda.
Rujukan
- 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."