Generator ya CURP
Utangulizi
CURP (Clave Única de Registro de Población) ni nambari ya kipekee ya alfanumeriki inayotumika nchini Mexico kwa madhumuni ya utambulisho. Kifaa hiki kinazalisha CURP halali, za bahati nasibu kwa ajili ya hali za majaribio, zikihusisha muundo rasmi na sheria za uthibitishaji. Ni muhimu kutambua kwamba CURP hizi zilizozalishwa hazihusiani na watu halisi na zinapaswa kutumika tu kwa madhumuni ya majaribio.
Muundo wa CURP
CURP inajumuisha herufi 18 katika muundo ufuatao:
- Herufi ya kwanza ya jina la baba
- Vowel ya kwanza ya jina la baba (bila kuhesabu herufi ya kwanza)
- Herufi ya kwanza ya jina la mama
- Herufi ya kwanza ya jina la kwanza 5-10. Tarehe ya kuzaliwa (muundo wa YYMMDD)
- Jinsia (H kwa mwanaume, M kwa mwanamke) 12-13. Kodi ya herufi mbili kwa jimbo la kuzaliwa 14-16. K consonant ya kwanza ya kila sehemu ya jina (jina la baba, jina la mama, jina la kwanza)
- Nambari ya utofauti (0-9 kwa watu waliozaliwa kabla ya 2000, A-Z kwa wale waliozaliwa kuanzia 2000)
- Nambari ya ukaguzi (0-9)
Algorithimu ya Kutengeneza CURP ya Bahati Nasibu
- Tengeneza herufi za bahati nasibu kwa sehemu za jina
- Tengeneza tarehe ya kuzaliwa ya bahati nasibu
- Chagua jinsia kwa bahati nasibu
- Chagua kodi halali ya jimbo kwa bahati nasibu
- Tengeneza consonants za bahati nasibu kwa sehemu za ndani za jina
- Amua nambari ya utofauti kulingana na mwaka wa kuzaliwa
- Hesabu nambari ya ukaguzi
- Changanya sehemu zote ili kuunda CURP
Sheria za Uthibitishaji
- Herufi zote za alfabeti zinapaswa kuwa kubwa
- Tarehe ya kuzaliwa inapaswa kuwa tarehe halali (ikiwemo kuzingatia mwaka wa kuruka)
- Kodi ya jimbo inapaswa kuwa kodi halali ya jimbo la Mexico
- Nambari ya utofauti inapaswa kuendana na mwaka wa kuzaliwa
- Nambari ya ukaguzi inapaswa kuwa sahihi
- Shughulikia kesi maalum za majina (mfano, majina ya herufi moja, majina yenye Ñ)
Matumizi
-
Upimaji wa Programu: Wataalamu wa programu wanaweza kutumia kifaa hiki kutengeneza CURP halali kwa ajili ya kupima mifumo ya usajili wa watumiaji, operesheni za hifadhidata, au programu yoyote inayohitaji kuingiza CURP.
-
Faragha ya Takwimu: Wakati wa kuonyesha programu au kuwasilisha data, kutumia CURP zilizozalishwa kwa bahati nasibu husaidia kulinda faragha ya watu.
-
Upimaji wa Utendaji: Tengeneza seti kubwa za CURP za kipekee ili kupima utendaji wa mfumo chini ya mzigo.
-
Mafunzo na Elimu: Tumia CURP zilizozalishwa katika vifaa vya elimu kuhusu mifumo ya utambulisho ya Mexico bila kutumia data halisi ya kibinafsi.
Historia ya CURP nchini Mexico
Mfumo wa CURP ulianzishwa mnamo mwaka wa 1996 na serikali ya Mexico kama sehemu ya juhudi za kisasa na viwango vya utambulisho wa kibinafsi. Ulihamasisha mifumo mingine ya utambulisho na kuwa kipengele muhimu katika utawala wa Mexico, ukitumika kwa kila kitu kuanzia usajili wa shule hadi uwasilishaji wa kodi.
Katika miaka iliyopita, mfumo wa CURP umepitia mabadiliko kadhaa:
- Mnamo mwaka wa 2011, nambari ya utofauti ilianzishwa ili kutofautisha kati ya watu waliozaliwa kabla na baada ya mwaka wa 2000.
- Mnamo mwaka wa 2012, algorithimu ya kuhesabu nambari ya ukaguzi ilibadilishwa ili kuboresha upekee.
Mifano
Hapa kuna mifano ya msimbo wa kutengeneza CURP za bahati nasibu katika lugha mbalimbali za programu:
import random
import string
from datetime import datetime, timedelta
def generate_curp():
# Tengeneza sehemu za jina
paternal = random.choice(string.ascii_uppercase) + random.choice('AEIOU')
maternal = random.choice(string.ascii_uppercase)
given = random.choice(string.ascii_uppercase)
# Tengeneza tarehe ya kuzaliwa
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")
# Tengeneza jinsia
gender = random.choice(['H', 'M'])
# Tengeneza kodi ya jimbo
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)
# Tengeneza consonants
consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
# Tengeneza nambari ya utofauti
diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
# Tengeneza nambari ya ukaguzi (imepunguzika kwa mfano huu)
check_digit = random.choice(string.digits)
return f"{paternal}{maternal}{given}{date_str}{gender}{state}{consonants}{diff_digit}{check_digit}"
## Tengeneza na uchapishe CURP ya bahati nasibu
print(generate_curp())
Mbadala katika Nchi Nyingine
Ingawa CURP ni ya kipekee kwa Mexico, nchi nyingine zina mifumo ya utambulisho inayofanana:
- Marekani: Nambari ya Usalama wa Kijamii (SSN)
- Kanada: Nambari ya Hakuna ya Kijamii (SIN)
- India: Nambari ya Aadhaar
- Brazil: Cadastro de Pessoas Físicas (CPF)
Kila mfumo una muundo na sheria zake, lakini unatumika kwa madhumuni yanayofanana katika nchi zao.
Marejeleo
- SEGOB (Secretaría de Gobernación). "CURP - Trámites." Gobierno de México, https://www.gob.mx/curp/. Upatikanaji 4 Agosti 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. Upatikanaji 4 Agosti 2024.