회원가입

로그인

아이디
비밀번호
ID/PW 찾기
아직 회원이 아니신가요? 회원가입 하기

주민등록번호 검사원리

Profile
맥노턴

검사 원리 (알고리즘)

주민등록번호는 앞자리가 6자리의 숫자로 구성되며, 태어난 날의 연도, 월, 일을 나타내는 숫자이다. 뒷자리는 일련번호로서, 7자리로 구성되며 첫번째 숫자는 성별을 나타내는 의미를 가지고 있다. 구분자인 '-' 기호를 빼면 총 13자리의 숫자로 구성되며, 정상적인 번호인지를 가려낼 수 있는 자체적인 정보를 담고 있다.

정상적인 주민등록번호인지를 판별하기 위해서는 먼저 주민등록번호 맨 뒷자리를 제외한 각 자릿수의 숫자들에 각각 지정된 숫자들을 곱해서, 이 결과들을 더해야 한다. 각 자릿수에 지정된 승수들은 다음과 같다. (아래에서 진하게 표시된 행은 주민등록번호를 나타낸다)

  1 2 3 4 5 6 - 1 2 3 4 5 6 7
X 2 3 4 5 6 7   8 9 2 3 4 5  
  n1 n2 n3 n4 n5 n6   n7 n8 n9 n10 n11 n12  

각 자릿수에 지정된 승수들을 더한 값을 N이라고 하면,

N = n1 + n2 + n3 + ... + n12

N을 11로 나눈 나머지를 11에서 뺀 수가 주민등록번호 마지막 자릿수와 일치하면 정상적인 주민등록번호이다.

11 - (N % 11) = 마지막 자릿수

N의 값이 11로 나누어 떨어지거나 나머지가 1이라면 위 식의 값은 10 또는 11이 된다. 마지막 자릿수는 1자리이기 때문에 이런 경우에는 비교할 때 같지 않은 것으로 처리되기 때문에 위 식을 다시 한번 10으로 나누어 그 나머지를 취하여 마지막 자릿수와 비교해야 한다. 따라서, 위 식을 다음과 같이 수정해야 한다.

(11 - (N % 11)) % 10 = 마지막 자릿수

위의 공식을 이해하고 있다면, 가짜 주민등록번호를 생성하는건 매우 쉬운일이겠죠?

Profile
맥노턴
레벨 30
569116/686490
81%
McNorton & Education Lab.
Director
댓글
0
댓글 쓰기
권한이 없습니다.

로그인

아이디
비밀번호
ID/PW 찾기
아직 회원이 아니신가요? 회원가입 하기