Skip to content

Resident Number Format Validator

Checks whether a 13-digit resident number is structurally valid — date part, region rules and check digit.

A 주민등록번호 has structure: the first six digits are a date, the seventh encodes century and nationality, and the last digit is a checksum over the rest. Checking that structure catches a transcription error in a form field without anyone needing to look the person up.

🔒 Runs entirely in your browserrrnvalidateprivacyformat

주민등록번호 (resident registration number)

The hyphen is optional.

There is no function here that generates a 주민등록번호.

Validating and masking have uses. A function that manufactures a structurally valid number has exactly one — getting past an identity check. And a “structurally valid” number is usually a number that belongs to a real person. So it is not built.

What you type is handled inside this tab and is not transmitted anywhere.

How to use it

  1. Enter the number

    The date part, the century/nationality digit and the check digit are each reported separately, so you can see which part failed rather than only that something did.

  2. Read the date component carefully

    A structurally valid date is not necessarily the right one — 020230 fails because February has no thirtieth, but 020228 passes whether or not it is the person’s birthday.

  3. Use it for input validation, not identity

    This belongs in front of a form, catching typos. It does not belong anywhere a decision about a person is being made.

Common questions

Will this generate a resident number?

No, and it never will. This suite validates and masks 주민등록번호; it does not manufacture them, and a generator would exist for one purpose only.

Does a valid number mean it belongs to a real person?

No. It means the digits are internally consistent. Verifying that a number belongs to someone is 본인확인, done by an authorised agency, and cannot be done from the number alone.

Is the number I typed transmitted?

No. The check is arithmetic in the browser, there is no request, and nothing is stored — including in the browser’s own history of the field.

Why did a number from before 2000 fail?

Check the seventh digit against the birth year: 1/2 are 1900s Korean nationals, 3/4 the 2000s, 5/6 and 7/8 foreign nationals of each century. A mismatch between that digit and the date is the usual cause.

Feed it from

Next

These accept what this tool produces, so the result can go straight in.