-
주민등록번호 검증(검사) 소스Programming/C,C++,C# 2007. 12. 18. 00:18반응형
주민등록번호는 13자리로 구성이 되어 있습니다.
123456 - 1234567
위와 같이 앞자리 6자리는 생년월일 이고
뒷자리 첫번째는 성별입니다. ( 홀수는 남성, 짝수는 여성 )
그리고 2번째부터 5번째 4개의 숫자는 자신이 태어난 지역코드인데 이것은 현재 보안상비밀이라고합니다.
그리고 6번째는 자신이 태어난 날 해당지역에서 몇번째로 태어났는지, 즉 해당지역에서 그날 몇번째로 태어난 아기인지를 알 수 있습니다.
( 더욱 자세히 얘기하자면 같은 성씨중 .. 즉, 자신이 김씨이고 번호가 2라면 해당지역에서 해당일에 태어난 김씨중 2번째로 태어난 아기가 되는것이죠... )
그리고 마지막 13번째 숫자가 올바른주민등록번호인지를 판별하는 검증번호가 됩니다.
검증방법은 사실 굉장히 간단합니다.
예) 주민번호 : 123456 - 1234567
자릿수 01 02 03 04 05 06 07 08 09 10 11 12
────────────────────────
주민번호 1 2 3 4 5 6 1 2 3 4 5 6
X 2 3 4 5 6 7 8 9 2 3 4 5
주민번호의 검증번호13번째 수를 뺀 나머지 12자리에 위의 숫자를 각각 곱한후 그값을 모두 더합니다.
1*2 + 2*3 + 3*4 + ... = 206
더한값을 11로 나눕니다.
206/11 ( 나머지 : 8 )
나눈값의 나머지을 11로 뺍니다.
11-8 = 3
결과값이 13번째 번호와 일치하면 유효한 주민등록번호로 판단합니다.
3 -- 7 불일치 (유효하지 않은 주민등록번호 )
BOOL VerifyJuminNumber(int number[]) { const int tab[] = {2,3,4,5,6,7,8,9,2,3,4,5}; int sum = 0; int i = 0; for(i=0 ; i<12 ; i++) sum += number[i] * tab[i]; return ((11-(sum%11))%10 == number[12])? TRUE:FALSE; }
반응형'Programming > C,C++,C#' 카테고리의 다른 글
생성자함수에서 생성자(오버로딩)함수를 호출할때 주의할 점 (2) 2008.01.11 strcpy 함수를 만들어보자 (0) 2007.11.26 strlen 함수를 만들어보자 (0) 2007.11.25