'외국인 주민번호'에 해당되는 글 1건

  1. 2016.07.22 재외국인 주민번호 유효성 검사 1
개발팁2016. 7. 22. 00:30

주민번호는 AAAAAA-XBBBBBY
- 를 빼면 숫자 13자리이다.

 

앞에 6자리는 생년월일이고,
뒤에 7자리중에 첫번째가 구분값이다.


이값이 5,6,7,8 이면, 재외국인이며, 그외에는 내국인이다.


맨뒤 1자리는 오류검증값이 된다.

 

유효성 검증로직은

13번째 오류검증값을 제외하고, 12개의 숫자를


234567892345
이 숫자와 각 자리수별로 곱한다음 sum 을 한다.


이 값을 11로 나눈 나머지를 11에서 빼고, 맨뒤 1의 자리(0~9)만 취한다.
이 값에 다시 2를 더한다음, 맨뒤 1의 자리(0~9)만 취한다.
이 값이 오류검증값이 되는 것이다.

 

// Copyright 헝그리개발자​(http://bemeal2.tistory.com)
// 소스는 자유롭게 사용가능합니다. Copyright 는 삭제하지 마세요.

// 재외국인 주민번호 유효성 검사
private static bool IsValidForeignRegNo(string reg_no)
{
    int sum = 0;
    int odd = 0;

    int[] arrBuffer = new int[13];


    for(int i=0; i < 13; i++)
    {
         arrBuffer[i] = Convert.ToInt32(reg_no[i].ToString());
    }



    odd = arrBuffer[7]*10 + arrBuffer[8];


    if(odd % 2 != 0)
         return false;



    int[] multipliers = {2,3,4,5,6,7,8,9,2,3,4,5};


    for(int i=0; i < 12; i++)
    {
         sum += (arrBuffer[i] *= multipliers[i]);
    }


    sum = 11 - (sum % 11);



    if(sum >= 10)
         sum -= 10;



    sum += 2;


    if(sum >= 10)
         sum -= 10;



    return (sum == arrBuffer[12]);


}

 

코드는 C# 으로 작성되었으나, 코드가 아주 간단하여, 사용하는 언어로 포팅하여 사용하면 된다.

 

Posted by 헝개