2009. 2. 5. 09:47
주민등록 검사의 원리
2009. 2. 5. 09:47 in 개발/자바
출생 년도 (YY = 00 - 99 사이의 값)
+--+
| | 출생월 (MM = 01 - 12 사이의 값)
| | +--+
| | | | 출생일 (DD = 01 - 31 사이의 값)
| | | | +--+
| | | | | | 남,여 구분 (1, 3 = 남자, 2, 4 = 여자 )
| | | | | | |
Y Y M M D D - X C
+------------------------------------------------------------------+
| 0 1 2 3 4 5 6 7 8 9 10 11 12 | index
| 6 6 0 5 1 0 - 1 3 2 1 6 1 1 | data
| 2 3 4 5 6 7 8 9 2 3 4 5 KEY | mask
+------------------------------------------------------------------+
(11- {12+ 18+ 0+ 25+ 6+ 0+ 8+ 27+ 4+ 3+ 24+ 5}%11)% 10 == 1
* 주민등록 번호 검사 비트 검사 방법
1) 주민등록 번호에 앞에서부터 2,3,4,5,6,7,8,9,2,3,4,5를 차례로 곱한다. {0..11}%8+2
2) 각각의 값을 모두 더한다. sum
3) 이 합을 11로 나눈다. 그러면 나머지는 0,1,2,3,4,5,6,7,8,9,10 중의 하나이다.
4) 11에서 나머지를 뺀다.
5) 이때 나머지 값이 10을 넘으면 10를 빼고, (11-sum%11)%10
그렇지 않으면 나머지 값이 주민등록 검사 비트이다.
예) 660510-1321611
6 * 2 + 6 * 3 + 0 * 4 + 5 * 5 + 1 * 6 + 0 * 7 + 1 * 8 + 3 * 9 + 2 * 2 + 1 * 3 + 6 * 4 + 1 * 5 = 132 : 합계
132 % 11 = 0 : 나머지값
(11 - 0) % 10 = 1 : 결과값
따라서 키 플래그는 1이다. 그리고 마지막 자리의 체크플래그는 1이다.
키플래그 == 체크플래그
+--+
| | 출생월 (MM = 01 - 12 사이의 값)
| | +--+
| | | | 출생일 (DD = 01 - 31 사이의 값)
| | | | +--+
| | | | | | 남,여 구분 (1, 3 = 남자, 2, 4 = 여자 )
| | | | | | |
Y Y M M D D - X C
+------------------------------------------------------------------+
| 0 1 2 3 4 5 6 7 8 9 10 11 12 | index
| 6 6 0 5 1 0 - 1 3 2 1 6 1 1 | data
| 2 3 4 5 6 7 8 9 2 3 4 5 KEY | mask
+------------------------------------------------------------------+
(11- {12+ 18+ 0+ 25+ 6+ 0+ 8+ 27+ 4+ 3+ 24+ 5}%11)% 10 == 1
* 주민등록 번호 검사 비트 검사 방법
1) 주민등록 번호에 앞에서부터 2,3,4,5,6,7,8,9,2,3,4,5를 차례로 곱한다. {0..11}%8+2
2) 각각의 값을 모두 더한다. sum
3) 이 합을 11로 나눈다. 그러면 나머지는 0,1,2,3,4,5,6,7,8,9,10 중의 하나이다.
4) 11에서 나머지를 뺀다.
5) 이때 나머지 값이 10을 넘으면 10를 빼고, (11-sum%11)%10
그렇지 않으면 나머지 값이 주민등록 검사 비트이다.
예) 660510-1321611
6 * 2 + 6 * 3 + 0 * 4 + 5 * 5 + 1 * 6 + 0 * 7 + 1 * 8 + 3 * 9 + 2 * 2 + 1 * 3 + 6 * 4 + 1 * 5 = 132 : 합계
132 % 11 = 0 : 나머지값
(11 - 0) % 10 = 1 : 결과값
따라서 키 플래그는 1이다. 그리고 마지막 자리의 체크플래그는 1이다.
키플래그 == 체크플래그