public static bool CheckCpIdenti(string cpIdenti)
{
cpIdenti = cpIdenti.Replace("-", "");
if (cpIdenti.Length != 10)
{
return false;
}
int sum = 0;
string checkNo = "137137135";
// 1. 각각의 자리에 1 3 7 1 3 7 1 3 5 를 곱한 합을 구한다.
for (int i = 0; i < checkNo.Length; i++)
sum += (int)Char.GetNumericValue(cpIdenti[i]) * (int)Char.GetNumericValue(checkNo[i]);
// 2. 마지막에서 두번째 숫자에 5를 곱하고 10으로 나누어 나온 몫을 더한다.
sum += (int)Char.GetNumericValue(cpIdenti[8]) * 5 / 10;
// 3. 매직키인 10로 나누어 나머지만 취한다.
sum %= 10;
// 4. 매직키인 10에서 나머지를 뺀다. (단 나머지가 0이 아닐경우)
if(sum != 0)
sum = 10 - sum;
// 5. 이숫자가 사업자등록번호 마지막 자리의 숫자와 일치하면 정상적인 사업자등록번호이다.
if (sum != (int)Char.GetNumericValue(cpIdenti[9]))
return false;
else
return true;
}