పరీక్షా ఉద్దేశ్యాల కోసం చట్టపరమైన, యాదృచ్ఛిక CPF (Cadastro de Pessoas Físicas) సంఖ్యలను ఉత్పత్తి చేయండి. ఈ సాధనం అధికారిక బ్రెజిలియన్ ఫార్మాట్ మరియు ప్రమాణాల నిబంధనలకు అనుగుణంగా ఉన్న CPFs ను సృష్టిస్తుంది, ఏ నిజమైన వ్యక్తిగత సమాచారాన్ని ఉపయోగించకుండా.
CPF (Cadastro de Pessoas Físicas) bir vergi amacıyla Brezilya vatandaşlarına ve sakinlerine atanan benzersiz bir tanımlayıcıdır. Bu oluşturucu, test amaçları için geçerli, rastgele CPF numaraları oluşturur. Oluşturulan bu CPF'lerin gerçek bireylerle ilişkili olmadığını ve yalnızca test ortamlarında kullanılmaları gerektiğini unutmamak önemlidir.
Bir CPF 11 rakamdan oluşur:
Format genellikle şu şekilde temsil edilir: XXX.XXX.XXX-XX
CPF doğrulama algoritması, numaranın bütünlüğünü sağlar. İşte nasıl çalıştığı:
Geçerli bir CPF oluşturma formülü şu şekildedir:
1def generate_cpf():
2 # 9 rastgele rakam oluştur
3 base_cpf = [random.randint(0, 9) for _ in range(9)]
4
5 # İlk kontrol rakamını hesapla
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 # İkinci kontrol rakamını hesapla
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
Oluşturucu aşağıdaki adımları gerçekleştirir:
İşte oluşturulan bazı CPF örnekleri:
CPF oluşturucu, çeşitli yazılım geliştirme ve test senaryolarında faydalıdır:
CPF, Brezilya'daki birincil bireysel tanımlayıcıdır, ancak belirli bağlamlarda kullanılabilecek diğer tanımlayıcılar da vardır:
CPF, Brezilya'da 1965 yılında ülkenin vergi sistemini modernize etme çabalarının bir parçası olarak tanıtılmıştır. Başlangıçta yalnızca gelir vergisi amaçları için kullanılıyordu, ancak zamanla kullanımı Brezilya bürokrasisi ve ticaretinin çeşitli diğer alanlarına yayıldı.
CPF tarihindeki önemli dönüm noktaları:
Bugün, CPF, Brezilya vatandaşlarının ve sakinlerinin devlet hizmetleri, finansal kurumlar ve birçok ticari işlemle etkileşimlerinde önemli bir parçadır.
İşte çeşitli programlama dillerinde CPF oluşturma ve doğrulama için kod parçacıkları:
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## Örnek kullanım
21cpf = generate_cpf()
22print(f"Oluşturulan CPF: {cpf}")
23print(f"Geçerli mi: {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// Örnek kullanım
23const cpf = generateCPF();
24console.log(`Oluşturulan CPF: ${cpf}`);
25console.log(`Geçerli mi: ${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("Oluşturulan CPF: " + cpf);
50 System.out.println("Geçerli mi: " + validateCPF(cpf));
51 }
52}
53
Bu örnekler, Python, JavaScript ve Java dillerinde CPF oluşturma ve doğrulama yöntemlerini göstermektedir. Bu fonksiyonları belirli ihtiyaçlarınıza uyarlayabilir veya CPF işlemleri gerektiren daha büyük sistemlere entegre edebilirsiniz.
Oluşturulan CPF'leri kullanırken, aşağıdaki noktaları dikkate almak önemlidir:
మీ వర్క్ఫ్లో కోసం ఉపయోగపడవచ్చే ఇతర సాధనాలను కనుగొనండి