גנרטור CURP אקראי לבדיקות ולתהליכי אימות

צור CURPs תקפים ואקראיים (Clave Única de Registro de Población) למטרות בדיקה. כלי זה יוצר CURPs העומדים בדרישות הפורמליות ובכללי האימות המקסיקניים, מבלי להשתמש במידע אישי אמיתי.

צור CURP

📚

תיעוד

CURP Generator

Introduction

ה-CURP (Clave Única de Registro de Población) הוא קוד אלפאנומרי ייחודי שמשמש במקסיקו למטרות זיהוי. הכלי הזה יוצר CURPs תקפים ורנדומליים לסנריואים של בדיקות, בהתאם לפורמט ולחוקי האימות הרשמים. חשוב לציין שה-CURPs המיוצרים אינם קשורים לאנשים אמיתיים ויש להשתמש בהם רק למטרות בדיקה.

Structure of CURP

CURP מורכב מ-18 תווים בפורמט הבא:

  1. האות הראשונה של שם המשפחה האבהי
  2. התנועה הראשונה של שם המשפחה האבהי (למעט האות הראשונה)
  3. האות הראשונה של שם המשפחה האמהי
  4. האות הראשונה של השם הפרטי 5-10. תאריך הלידה (בפורמט YYMMDD)
  5. מגדר (H עבור זכר, M עבור נקבה) 12-13. קוד בן-שניים למדינת הלידה 14-16. העיצור הראשון של כל רכיב שם (שם משפחה אבהי, שם משפחה אמהי, שם פרטי)
  6. ספרת הבחנה (0-9 עבור אנשים שנולדו לפני 2000, A-Z עבור אלו שנולדו מ-2000 ואילך)
  7. ספרת בדיקה (0-9)

Algorithm for Generating a Random CURP

  1. יצירת אותיות רנדומליות עבור רכיבי השם
  2. יצירת תאריך לידה רנדומלי
  3. בחירת מגדר רנדומלי
  4. בחירת קוד מדינה תקף רנדומלי
  5. יצירת עיצורים רנדומליים עבור רכיבי השם הפנימיים
  6. קביעת ספרת הבחנה על סמך שנת הלידה
  7. חישוב ספרת הבדיקה
  8. שילוב כל הרכיבים ליצירת ה-CURP

Validation Rules

  • כל התווים האלפביתיים חייבים להיות באותיות גדולות
  • תאריך הלידה חייב להיות תאריך תקף (כולל התחשבות בשנה מעוברת)
  • קוד המדינה חייב להיות קוד מדינה מקסיקני תקף
  • ספרת הבחנה חייבת להתאים לשנת הלידה
  • ספרת הבדיקה חייבת להיות מחושבת כהלכה
  • טיפול במקרים מיוחדים עבור שמות (למשל, שמות משפחה באות אחת, שמות עם Ñ)

Use Cases

  1. בדיקות תוכנה: מפתחים יכולים להשתמש בכלי הזה ליצירת CURPs תקפים לצורך בדיקות מערכות רישום משתמשים, פעולות במסד נתונים, או כל תוכנה שדורשת קלט CURP.

  2. פרטיות נתונים: כאשר מדגימים תוכנה או מציגים נתונים, השימוש ב-CURPs שנוצרו רנדומלית עוזר להגן על פרטיות הפרטים.

  3. בדיקות ביצועים: יצירת קבוצות גדולות של CURPs ייחודיים לצורך בדיקת ביצועי המערכת תחת עומס.

  4. הכשרה וחינוך: שימוש ב-CURPs שנוצרו בחומרי לימוד על מערכות זיהוי מקסיקניות מבלי להשתמש בנתונים אישיים אמיתיים.

History of CURP in Mexico

מערכת ה-CURP הוצגה בשנת 1996 על ידי הממשלה המקסיקנית כחלק ממאמצים לייעל ולסטנדרטיזציה של זיהוי אישי. היא החליפה מערכות זיהוי אחרות והפכה לרכיב קרדינלי בבירוקרטיה המקסיקנית, שמשמשת לכל דבר, החל מרישום בבתי ספר ועד הגשת מיסים.

עם השנים, מערכת ה-CURP עברה מספר שינויים:

  • בשנת 2011, ספרת הבחנה הוצגה כדי להבחין בין אנשים שנולדו לפני ואחרי 2000.
  • בשנת 2012, האלגוריתם לחישוב ספרת הבדיקה שונה כדי לשפר את הייחודיות.

Examples

הנה דוגמאות קוד ליצירת CURPs רנדומליים בשפות תכנות שונות:

1import random
2import string
3from datetime import datetime, timedelta
4
5def generate_curp():
6    # Generate name components
7    paternal = random.choice(string.ascii_uppercase) + random.choice('AEIOU')
8    maternal = random.choice(string.ascii_uppercase)
9    given = random.choice(string.ascii_uppercase)
10
11    # Generate date of birth
12    start_date = datetime(1940, 1, 1)
13    end_date = datetime.now()
14    random_date = start_date + timedelta(days=random.randint(0, (end_date - start_date).days))
15    date_str = random_date.strftime("%y%m%d")
16
17    # Generate gender
18    gender = random.choice(['H', 'M'])
19
20    # Generate state code
21    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']
22    state = random.choice(states)
23
24    # Generate consonants
25    consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
26
27    # Generate differentiation digit
28    diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
29
30    # Generate check digit (simplified for this example)
31    check_digit = random.choice(string.digits)
32
33    return f"{paternal}{maternal}{given}{date_str}{gender}{state}{consonants}{diff_digit}{check_digit}"
34
35## Generate and print a random CURP
36print(generate_curp())
37

Alternatives in Other Countries

בעוד שה-CURP ייחודי למקסיקו, מדינות אחרות יש מערכות זיהוי דומות:

  1. ארצות הברית: מספר ביטוח לאומי (SSN)
  2. קנדה: מספר ביטוח חברתי (SIN)
  3. הודו: מספר Aadhaar
  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.