CURP Üretici
Giriş
CURP (Clave Única de Registro de Población), Meksika'da kimlik amaçları için kullanılan benzersiz alfanümerik bir koddur. Bu araç, resmi format ve doğrulama kurallarına uyarak test senaryoları için geçerli, rastgele CURP'ler üretir. Üretilen bu CURP'lerin gerçek bireylere bağlı olmadığını ve yalnızca test amaçları için kullanılmaları gerektiğini belirtmek önemlidir.
CURP Yapısı
Bir CURP, aşağıdaki formatta 18 karakterden oluşur:
- Baba soyadının ilk harfi
- Baba soyadının ilk sesli harfi (ilk harf hariç)
- Anne soyadının ilk harfi
- Verilen ismin ilk harfi 5-10. Doğum tarihi (YYMMDD formatı)
- Cinsiyet (Erkek için H, Kadın için M) 12-13. Doğum yeri eyaletinin iki harfli kodu 14-16. Her isim bileşeninin (baba soyadı, anne soyadı, verilen isim) ilk iç ünlüsü
- Farklılaştırma rakamı (2000'den önce doğanlar için 0-9, 2000 ve sonrası için A-Z)
- Kontrol rakamı (0-9)
Rastgele CURP Üretme Algoritması
- İsim bileşenleri için rastgele harfler üret
- Rastgele bir doğum tarihi oluştur
- Cinsiyeti rastgele seç
- Geçerli bir eyalet kodu rastgele seç
- İç isim bileşenleri için rastgele ünlüler üret
- Doğum yılına göre farklılaştırma rakamını belirle
- Kontrol rakamını hesapla
- Tüm bileşenleri birleştirerek CURP'yi oluştur
Doğrulama Kuralları
- Tüm alfabetik karakterler büyük harfle olmalıdır
- Doğum tarihi geçerli bir tarih olmalıdır (artık yıl dikkate alınmalıdır)
- Eyalet kodu geçerli bir Meksika eyalet kodu olmalıdır
- Farklılaştırma rakamı doğum yılına karşılık gelmelidir
- Kontrol rakamı doğru bir şekilde hesaplanmalıdır
- İsimler için özel durumları ele al (örneğin, tek harfli soyadlar, Ñ içeren isimler)
Kullanım Senaryoları
-
Yazılım Testi: Geliştiriciler, kullanıcı kayıt sistemleri, veritabanı işlemleri veya CURP girişi gerektiren herhangi bir yazılım için geçerli CURP'ler üretmek için bu aracı kullanabilir.
-
Veri Gizliliği: Yazılımı tanıtırken veya veri sunarken, rastgele üretilen CURP'lerin kullanılması bireylerin gizliliğini korumaya yardımcı olur.
-
Performans Testi: Sistem performansını yük altında test etmek için benzersiz CURP'lerin büyük setlerini üretin.
-
Eğitim ve Öğretim: Gerçek kişisel verileri kullanmadan Meksika kimlik sistemleri hakkında eğitim materyallerinde üretilen CURP'leri kullanın.
Meksika'da CURP Tarihçesi
CURP sistemi, Meksika hükümeti tarafından 1996 yılında kişisel kimlikleri modernize etme ve standartlaştırma çabası kapsamında tanıtıldı. Çeşitli diğer kimlik sistemlerinin yerini aldı ve Meksika bürokrasisinde, okul kaydından vergi beyannamesine kadar her şeyde kritik bir unsur haline geldi.
Yıllar içinde CURP sistemi birkaç değişiklik geçirdi:
- 2011 yılında, 2000'den önce ve sonra doğanları ayırt etmek için farklılaştırma rakamı tanıtıldı.
- 2012 yılında, kontrol rakamını hesaplama algoritması, benzersizliği artırmak için değiştirildi.
Örnekler
İşte çeşitli programlama dillerinde rastgele CURP'ler üretmek için kod örnekleri:
import random
import string
from datetime import datetime, timedelta
def generate_curp():
# İsim bileşenlerini oluştur
paternal = random.choice(string.ascii_uppercase) + random.choice('AEIOU')
maternal = random.choice(string.ascii_uppercase)
given = random.choice(string.ascii_uppercase)
# Doğum tarihini oluştur
start_date = datetime(1940, 1, 1)
end_date = datetime.now()
random_date = start_date + timedelta(days=random.randint(0, (end_date - start_date).days))
date_str = random_date.strftime("%y%m%d")
# Cinsiyeti oluştur
gender = random.choice(['H', 'M'])
# Eyalet kodunu oluştur
states = ['AS', 'BC', 'BS', 'CC', 'CL', 'CM', 'CS', 'CH', 'DF', 'DG', 'GT', 'GR', 'HG', 'JC', 'MC', 'MN', 'MS', 'NT', 'NL', 'OC', 'PL', 'QT', 'QR', 'SP', 'SL', 'SR', 'TC', 'TS', 'TL', 'VZ', 'YN', 'ZS']
state = random.choice(states)
# Ünlüleri oluştur
consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
# Farklılaştırma rakamını oluştur
diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
# Kontrol rakamını oluştur (bu örnek için basitleştirilmiş)
check_digit = random.choice(string.digits)
return f"{paternal}{maternal}{given}{date_str}{gender}{state}{consonants}{diff_digit}{check_digit}"
## Rastgele bir CURP üret ve yazdır
print(generate_curp())
Diğer Ülkelerdeki Alternatifler
CURP, Meksika'ya özgü olsa da, diğer ülkelerde benzer kimlik sistemleri bulunmaktadır:
- Amerika Birleşik Devletleri: Sosyal Güvenlik Numarası (SSN)
- Kanada: Sosyal Sigorta Numarası (SIN)
- Hindistan: Aadhaar Numarası
- Brezilya: Cadastro de Pessoas Físicas (CPF)
Her sistemin kendi yapısı ve kuralları vardır, ancak benzer amaçlara hizmet etmektedirler.
Referanslar
- SEGOB (Secretaría de Gobernación). "CURP - Trámites." Gobierno de México, https://www.gob.mx/curp/. Erişim tarihi 4 Ağu. 2024.
- RENAPO (Registro Nacional de Población e Identidad). "Instructivo Normativo para la Asignación de la Clave Única de Registro de Población." Gobierno de México, https://www.gob.mx/cms/uploads/attachment/file/79053/InstructivoNormativoCURP.pdf. Erişim tarihi 4 Ağu. 2024.