Whiz Tools

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:

  1. Herufi ya kwanza ya jina la baba
  2. Vowel ya kwanza ya jina la baba (bila kuhesabu herufi ya kwanza)
  3. Herufi ya kwanza ya jina la mama
  4. Herufi ya kwanza ya jina la kwanza 5-10. Tarehe ya kuzaliwa (muundo wa YYMMDD)
  5. 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)
  6. Nambari ya utofauti (0-9 kwa watu waliozaliwa kabla ya 2000, A-Z kwa wale waliozaliwa kuanzia 2000)
  7. Nambari ya ukaguzi (0-9)

Algorithimu ya Kutengeneza CURP ya Bahati Nasibu

  1. Tengeneza herufi za bahati nasibu kwa sehemu za jina
  2. Tengeneza tarehe ya kuzaliwa ya bahati nasibu
  3. Chagua jinsia kwa bahati nasibu
  4. Chagua kodi halali ya jimbo kwa bahati nasibu
  5. Tengeneza consonants za bahati nasibu kwa sehemu za ndani za jina
  6. Amua nambari ya utofauti kulingana na mwaka wa kuzaliwa
  7. Hesabu nambari ya ukaguzi
  8. 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

  1. 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.

  2. Faragha ya Takwimu: Wakati wa kuonyesha programu au kuwasilisha data, kutumia CURP zilizozalishwa kwa bahati nasibu husaidia kulinda faragha ya watu.

  3. Upimaji wa Utendaji: Tengeneza seti kubwa za CURP za kipekee ili kupima utendaji wa mfumo chini ya mzigo.

  4. 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())
function generateCURP() {
    const vowels = 'AEIOU';
    const consonants = 'BCDFGHJKLMNPQRSTVWXYZ';
    const 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'];

    const randomLetter = () => String.fromCharCode(65 + Math.floor(Math.random() * 26));
    const randomVowel = () => vowels[Math.floor(Math.random() * vowels.length)];
    const randomConsonant = () => consonants[Math.floor(Math.random() * consonants.length)];

    const paternal = randomLetter() + randomVowel();
    const maternal = randomLetter();
    const given = randomLetter();

    const now = new Date();
    const start = new Date(1940, 0, 1);
    const randomDate = new Date(start.getTime() + Math.random() * (now.getTime() - start.getTime()));
    const dateStr = randomDate.toISOString().slice(2, 10).replace(/-/g, '');

    const gender = Math.random() < 0.5 ? 'H' : 'M';
    const state = states[Math.floor(Math.random() * states.length)];

    const internalConsonants = randomConsonant() + randomConsonant() + randomConsonant();

    const diffDigit = parseInt(dateStr.slice(0, 2)) < 20 ? 
        Math.floor(Math.random() * 10).toString() :
        String.fromCharCode(65 + Math.floor(Math.random() * 26));

    const checkDigit = Math.floor(Math.random() * 10).toString();

    return `${paternal}${maternal}${given}${dateStr}${gender}${state}${internalConsonants}${diffDigit}${checkDigit}`;
}

// Tengeneza na uandike CURP ya bahati nasibu
console.log(generateCURP());

Mbadala katika Nchi Nyingine

Ingawa CURP ni ya kipekee kwa Mexico, nchi nyingine zina mifumo ya utambulisho inayofanana:

  1. Marekani: Nambari ya Usalama wa Kijamii (SSN)
  2. Kanada: Nambari ya Hakuna ya Kijamii (SIN)
  3. India: Nambari ya Aadhaar
  4. Brazil: Cadastro de Pessoas Físicas (CPF)

Kila mfumo una muundo na sheria zake, lakini unatumika kwa madhumuni yanayofanana katika nchi zao.

Marejeleo

  1. SEGOB (Secretaría de Gobernación). "CURP - Trámites." Gobierno de México, https://www.gob.mx/curp/. Upatikanaji 4 Agosti 2024.
  2. 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.
Feedback