본문으로 건너뛰기

CURP 생성기 - 개발을 위한 멕시코 ID 코드 테스트

CURP 생성기는 멕시코 공식 RENAPO 형식에 맞는 18자리 무작위 CURP 코드를 유효한 검증 숫자와 함께 생성한다. 실제 개인 정보를 쓰지 않고도 소프트웨어 테스트, API 검증, 데이터베이스 시딩에 활용할 수 있는 개발자용 도구다.

올바른 확인 숫자가 있는 무작위의 구문적으로 유효한 샘플 CURP를 생성합니다.

로딩 계산기...
📚

문서화

CURP 생성기란 무엇인가?

CURP 생성기는 멕시코에서 거주자와 시민을 식별하는 데 사용하는 18자 코드를 무작위로 만든 예시 CURP를 생성합니다. 출력값은 올바른 구조와 정확히 계산된 검증 숫자를 갖지만 실제 사람과 연결되지는 않습니다. 개발자는 누구의 실제 개인정보도 노출하지 않고 소프트웨어를 테스트하기 위해 이러한 도구를 사용합니다.

CURP란 무엇인가?

CURP는 Clave Única de Registro de Población, 즉 인구 고유 등록 코드의 약자입니다. 이 코드는 멕시코의 국가 인구 등록 기관인 RENAPO(Registro Nacional de Población e Identidad)가 발급합니다. 멕시코 거주자의 거의 대부분이 CURP를 가지고 있습니다. CURP는 학교 등록 서류, 세무 기록, 의료 서류 및 유권자 등록에 표시됩니다. 이 코드는 이름, 생년월일, 성별, 출생 주의 일부와, 그렇지 않으면 같은 코드가 될 사람들을 구분하는 두 개의 추가 문자로 구성됩니다.

CURP의 구조와 형식

CURP는 항상 18개의 문자로 구성되며, 모두 대문자 또는 숫자입니다. 각 위치에는 정해진 의미가 있습니다.

위치의미
1아버지 성의 첫 글자
2부계 성의 첫 내부 모음(첫 글자 다음에 나오는 첫 모음)
3어머니 성의 첫 글자
4이름의 첫 글자
5–6출생 연도의 마지막 두 자리
7–8출생 월(01–12)
9–10출생 일(01–31)
11성별: Hombre(남성)의 H, Mujer(여성)의 M
12–13출생 주를 나타내는 두 글자 코드. 예를 들어 멕시코시티는 DF, 할리스코는 JC입니다.
14부계 성의 첫 번째 내부 자음
15모계 성의 첫 번째 내부 자음
16이름의 첫 내부 자음
172000년 이전 출생자는 숫자, 2000년 이후 출생자는 문자
18앞의 17개 문자를 바탕으로 계산한 검증 숫자

이 체계에서 멕시코에는 32개의 주 코드가 있으며, 31개 주와 멕시코시티에 각각 하나씩 배정됩니다.

처음 네 문자가 스페인어에서 무례한 말로 여겨지는 단어를 우연히 만들 경우, RENAPO는 두 번째 문자를 X로 바꿉니다. Ines Bueno Estrada라는 이름은 원래 BUEI로 시작하므로 코드가 대신 BXEI로 시작합니다. 이 생성기는 같은 82개 단어를 차단하고 동일한 치환을 적용합니다.

CURP 검증 숫자 계산 방법

18번째 문자는 입력 및 복사 오류를 감지합니다. 이 문자는 다음 방법으로 앞의 17개 문자에서 계산합니다.

  1. 목록 0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZ에서 앞의 17개 문자를 각각 찾습니다. 0부터 시작해 이 목록에서의 위치가 해당 문자의 값입니다. 따라서 0의 값은 0이고, A의 값은 10, R의 값은 28, Z의 값은 36입니다.
  2. 각 문자의 값에 가중치를 곱합니다. 첫 번째 문자의 가중치는 18에서 시작해 다음 문자마다 1씩 줄어들며, 17번째 문자의 가중치 2에서 끝납니다.
  3. 17개의 곱을 더해 합계 S를 구합니다.
  4. 검증 숫자는 (10 − (S mod 10)) mod 10입니다.

풀이 예시

할리스코에서 1985년 3월 15일에 남성으로 태어난 가상의 인물 Juan Pérez Ramírez를 예로 들어 보겠습니다.

  • 위치 1: P, "Pérez"의 첫 글자
  • 위치 2: E, "Pérez"의 첫 내부 모음(첫 글자 뒤의 문자는 E, R, E, Z이므로 첫 모음은 E임)
  • 위치 3: R, "Ramírez"의 첫 글자
  • 위치 4: J, "Juan"의 첫 글자
  • 위치 5–10: 850315, 1985-03-15를 나타냄
  • 위치 11: H, 남성
  • 위치 12–13: JC, 할리스코
  • 위치 14: R, "Pérez"의 첫 내부 자음
  • 위치 15: M, "Ramírez"의 첫 내부 자음
  • 위치 16: N, "Juan"의 첫 내부 자음
  • 위치 17: 0, 출생 연도가 2000년 이전이므로 숫자를 사용함(실제 기록에서는 정해진 규칙으로 숫자를 선택하며, 이 예에서는 0을 사용함)

앞의 17개 문자는 PERJ850315HJCRMN0입니다. 이 문자열에 위 공식을 적용하면 합계는 2342가 됩니다. 2342 mod 10 = 2이므로 검증 숫자는 (10 − 2) mod 10 = 8입니다. 전체 CURP는 PERJ850315HJCRMN08입니다.

이 생성기의 작동 방식

이 도구는 몇 단계로 예시 CURP를 만듭니다. 이름 부분에 사용할 무작위 문자를 고른 다음, 1940년부터 현재 연도 직전까지의 출생 연도를 선택하므로 날짜는 항상 과거가 됩니다. 일은 선택된 월의 실제 일수 범위에서 정하므로 2월 29일은 윤년에만 나타납니다. 성별과 주 코드는 무작위로 선택합니다. 그런 다음 세 개의 내부 자음을 추가하고, 필요한 경우 무례한 단어 치환을 적용하며, 출생 연도가 2000년 이상이면 위치 17에 문자를, 그보다 이르면 숫자를 넣고, 위 공식으로 검증 숫자를 계산합니다.

코드를 표시하기 전에 이 도구는 다시 확인합니다. 형식은 18자 패턴과 일치해야 하고, 월은 01-12여야 하며, 인코딩된 날짜가 실제 달력에 존재하면서 과거여야 하고, 검증 숫자가 일치해야 합니다. 날짜 확인에 사용하는 세기는 위치 17에서 정하며, 이는 RENAPO가 사용하는 것과 같은 규칙입니다. 숫자이면 1900년대, 문자이면 2000년대를 뜻합니다. 이러한 확인 중 하나라도 통과하지 못한 코드는 표시하지 않습니다.

생성된 CURP의 일반적인 용도

소프트웨어 팀은 멕시코 사용자를 위한 제품을 출시하기 전에 등록 양식, 데이터베이스 필드 및 유효성 검사 로직을 테스트하기 위해 생성된 CURP를 사용합니다. 코드는 무작위이므로 실제 식별 정보를 사용하거나 저장하지 않고 부하 테스트나 개발 데이터베이스 초기화를 위해 대량으로 만들 수 있습니다.

CURP 체계의 역사

멕시코는 여러 정부 기관이 서로 별도로 사용하던 여러 식별 체계를 통합하기 위해 1996년에 CURP를 도입했습니다. 기존 방식에서는 데이터베이스 간에 같은 사람의 기록을 대조하기가 어려웠습니다. 이후 CURP는 학교 등록, 세금 신고, 여권 신청을 비롯한 많은 정부 업무에 필요한 요건이 되었습니다. 2000년 이후 출생자의 경우 RENAPO는 위치 17에 숫자 대신 문자를 넣습니다.

CURP와 다른 국가 신분 식별 체계의 비교

국가체계형식
멕시코CURP18개의 문자 및 숫자
미국사회보장번호9자리 숫자
캐나다사회보험번호9자리 숫자
브라질CPF11자리 숫자
인도Aadhaar12자리 숫자
스페인DNI/NIE8자리 숫자와 검증 문자

단순한 순차 번호와 달리 CURP에는 생년월일, 성별, 주처럼 읽을 수 있는 정보가 들어 있습니다. 따라서 인코딩된 날짜가 실제 달력 날짜인지 확인할 수 있으며, 이는 이 도구가 예시 코드를 생성할 때 수행하는 확인 중 하나입니다.

자주 묻는 질문

CURP 생성기는 어떤 용도로 사용되나요?

실제 CURP와 같은 형식의 무작위 코드를 만들어 소프트웨어 테스트, 데이터베이스 초기화 및 유효성 검사 로직의 정상 작동 확인에 사용합니다.

생성된 CURP는 실제 사람과 연결되나요?

아니요. 모든 문자는 무작위로 선택되거나 다른 무작위 값에서 계산됩니다. 결과는 생존 여부와 관계없이 어떤 실제 사람과도 연결되지 않습니다.

생성된 CURP를 공식 양식에 사용할 수 있나요?

아니요. 실제 사람에게 유효한 CURP를 발급할 수 있는 기관은 RENAPO뿐입니다. 정부 양식, 세금 신고서 또는 기타 공식 문서에 생성된 코드를 사용하는 것은 사기 행위입니다.

일부 CURP는 문자로 끝나고 다른 CURP는 위치 17에서 숫자로 끝나는 이유는 무엇인가요?

위치 17는 그렇지 않으면 동일한 CURP를 갖게 될 사람들을 구분합니다. RENAPO는 2000년 이전 출생자에게 숫자를 사용하고, 2000년 이후 출생자에게 문자를 사용합니다.

CURP의 두 번째 문자가 때때로 X인 이유는 무엇인가요?

처음 네 문자가 그렇지 않으면 스페인어에서 무례한 말로 여겨지는 단어를 만들기 때문입니다. 이 경우 RENAPO는 두 번째 문자를 X로 바꾸므로 BUEI가 BXEI가 됩니다.

이 도구는 생성한 CURP를 저장하나요?

아니요. 코드는 JavaScript를 사용해 브라우저에서 생성됩니다. 서버로 전송되거나 저장되는 정보는 없습니다.

검증 숫자는 어떻게 계산하나요?

앞의 17개 문자를 각각 고정된 37자 알파벳에서의 위치에 따라 숫자로 변환하고, 18부터 2까지의 가중치를 곱한 뒤 합산합니다. 검증 숫자는 (10 − (sum mod 10)) mod 10입니다. 위의 계산 예를 참조하세요.

참고 문헌

  1. SEGOB(Secretaría de Gobernación), CURP 공식 포털.
  2. RENAPO(Registro Nacional de Población e Identidad), CURP 할당 규범 지침서.