Whiz Tools

CURP ਬਣਾਓ

CURP Generator

Introduction

CURP (Clave Única de Registro de Población) एक अद्वितीय अल्फ़ान्यूमेरिक कोड है जिसका उपयोग मेक्सिको में पहचान उद्देश्यों के लिए किया जाता है। यह उपकरण परीक्षण परिदृश्यों के लिए मान्य, यादृच्छिक CURP उत्पन्न करता है, जो आधिकारिक प्रारूप और सत्यापन नियमों का पालन करता है। यह ध्यान रखना महत्वपूर्ण है कि ये उत्पन्न CURP वास्तविक व्यक्तियों से जुड़े नहीं हैं और केवल परीक्षण उद्देश्यों के लिए उपयोग किए जाने चाहिए।

Structure of CURP

एक CURP 18 वर्णों का होता है निम्नलिखित प्रारूप में:

  1. पिता के उपनाम का पहला अक्षर
  2. पिता के उपनाम का पहला स्वर (पहले अक्षर को छोड़कर)
  3. माता के उपनाम का पहला अक्षर
  4. पहले नाम का पहला अक्षर 5-10. जन्म तिथि (YYMMDD प्रारूप)
  5. लिंग (H पुरुष के लिए, M महिला के लिए) 12-13. जन्म राज्य के लिए दो-अक्षर कोड 14-16. प्रत्येक नाम घटक (पिता का उपनाम, माता का उपनाम, पहले नाम) का पहला आंतरिक व्यंजन
  6. विभेदन अंक (2000 से पहले जन्मे लोगों के लिए 0-9, 2000 के बाद जन्मे लोगों के लिए A-Z)
  7. चेक अंक (0-9)

Algorithm for Generating a Random CURP

  1. नाम घटकों के लिए यादृच्छिक अक्षर उत्पन्न करें
  2. जन्म तिथि उत्पन्न करें
  3. लिंग यादृच्छिक रूप से चुनें
  4. एक मान्य राज्य कोड यादृच्छिक रूप से चुनें
  5. आंतरिक नाम घटकों के लिए यादृच्छिक व्यंजन उत्पन्न करें
  6. जन्म वर्ष के आधार पर विभेदन अंक निर्धारित करें
  7. चेक अंक की गणना करें
  8. CURP बनाने के लिए सभी घटकों को मिलाएं

Validation Rules

  • सभी वर्णात्मक अक्षर बड़े अक्षरों में होने चाहिए
  • जन्म तिथि एक मान्य तिथि होनी चाहिए (लीप वर्ष पर विचार करते हुए)
  • राज्य कोड एक मान्य मेक्सिकन राज्य कोड होना चाहिए
  • विभेदन अंक जन्म वर्ष के अनुसार होना चाहिए
  • चेक अंक सही तरीके से गणना की जानी चाहिए
  • नामों के विशेष मामलों को संभालें (जैसे, एकल-अक्षर उपनाम, Ñ वाले नाम)

Use Cases

  1. सॉफ़्टवेयर परीक्षण: डेवलपर्स इस उपकरण का उपयोग उपयोगकर्ता पंजीकरण प्रणालियों, डेटाबेस संचालन, या किसी भी सॉफ़्टवेयर के परीक्षण के लिए मान्य CURP उत्पन्न करने के लिए कर सकते हैं जो CURP इनपुट की आवश्यकता होती है।

  2. डेटा गोपनीयता: सॉफ़्टवेयर का प्रदर्शन करते समय या डेटा प्रस्तुत करते समय, यादृच्छिक रूप से उत्पन्न CURP का उपयोग करना व्यक्तियों की गोपनीयता की रक्षा करने में मदद करता है।

  3. प्रदर्शन परीक्षण: सिस्टम के लोड के तहत परीक्षण करने के लिए अद्वितीय CURP के बड़े सेट उत्पन्न करें।

  4. प्रशिक्षण और शिक्षा: मेक्सिकन पहचान प्रणालियों के बारे में शैक्षिक सामग्री में उत्पन्न CURP का उपयोग करें बिना वास्तविक व्यक्तिगत डेटा का उपयोग किए।

History of CURP in Mexico

CURP प्रणाली को 1996 में मेक्सिकन सरकार द्वारा व्यक्तिगत पहचान को आधुनिक और मानकीकरण करने के प्रयास के तहत पेश किया गया था। इसने विभिन्न अन्य पहचान प्रणालियों को प्रतिस्थापित किया और मेक्सिकन नौकरशाही में एक महत्वपूर्ण तत्व बन गया, जिसका उपयोग स्कूल में नामांकन से लेकर कर दाखिल करने तक किया जाता है।

वर्षों के दौरान, CURP प्रणाली में कई संशोधन किए गए हैं:

  • 2011 में, विभेदन अंक को 2000 से पहले और बाद में जन्मे लोगों के बीच भेद करने के लिए पेश किया गया था।
  • 2012 में, चेक अंक की गणना के लिए एल्गोरिदम में सुधार किया गया था ताकि विशिष्टता में सुधार हो सके।

Examples

यहां विभिन्न प्रोग्रामिंग भाषाओं में यादृच्छिक CURP उत्पन्न करने के कोड उदाहरण दिए गए हैं:

import random
import string
from datetime import datetime, timedelta

def generate_curp():
    # Generate name components
    paternal = random.choice(string.ascii_uppercase) + random.choice('AEIOU')
    maternal = random.choice(string.ascii_uppercase)
    given = random.choice(string.ascii_uppercase)

    # Generate date of birth
    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")

    # Generate gender
    gender = random.choice(['H', 'M'])

    # Generate state code
    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)

    # Generate consonants
    consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))

    # Generate differentiation digit
    diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)

    # Generate check digit (simplified for this example)
    check_digit = random.choice(string.digits)

    return f"{paternal}{maternal}{given}{date_str}{gender}{state}{consonants}{diff_digit}{check_digit}"

## Generate and print a random CURP
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}`;
}

// Generate and log a random CURP
console.log(generateCURP());

Alternatives in Other Countries

हालांकि CURP मेक्सिको के लिए अद्वितीय है, अन्य देशों में समान पहचान प्रणालियाँ हैं:

  1. संयुक्त राज्य अमेरिका: सामाजिक सुरक्षा संख्या (SSN)
  2. कनाडा: सामाजिक बीमा संख्या (SIN)
  3. भारत: आधार संख्या
  4. ब्राजील: Cadastro de Pessoas Físicas (CPF)

प्रत्येक प्रणाली की अपनी संरचना और नियम हैं, लेकिन वे अपने-अपने देशों में समान उद्देश्यों की सेवा करती हैं।

References

  1. SEGOB (Secretaría de Gobernación). "CURP - Trámites." Gobierno de México, https://www.gob.mx/curp/. Accessed 4 Aug. 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. Accessed 4 Aug. 2024.
ਫੀਡਬੈਕ