The South Korean Resident Registration Number (주민등록번호, often abbreviated RRN or JuminDeungnokBeonho) is a 13-digit national identifier issued by the Korean Ministry of the Interior and Safety to every Korean citizen at birth, and to registered foreign residents under a parallel scheme. If you are building a Korean-market application, integrating with Korean payment gateways, processing KYC data, or working with government APIs, you will encounter RRNs regularly — and you need a way to catch typos and malformed numbers before they reach your database.
This tool runs the official weighted mod-11 check-digit algorithm entirely in your browser, extracts the embedded birth date (with an unambiguous four-digit year), decodes the gender and nationality indicator, and shows you every intermediate step so you understand why a number passes or fails.
Structure of an RRN
An RRN follows the pattern YYMMDD-GXXXXC:
| Position | Length | Meaning |
|---|---|---|
| 1–2 | 2 digits | Birth year, last two digits (YY) |
| 3–4 | 2 digits | Birth month (01–12) |
| 5–6 | 2 digits | Birth day (01–31) |
| 7 | 1 digit | Gender / century / nationality code (G) |
| 8–11 | 4 digits | Serial: encodes original registration region + sequence (XXXX) |
| 12 | 1 digit | Historically encoded sub-region; now mostly redundant |
| 13 | 1 digit | Check digit (C) |
The hyphen after position 6 is conventional; it is not part of the number itself and this validator accepts input with or without it.
Gender and century codes
The single digit at position 7 is the most information-dense field in the RRN:
| Code | Gender | Birth century | Nationality |
|---|---|---|---|
| 9 | Male | 1800s | Korean national |
| 0 | Female | 1800s | Korean national |
| 1 | Male | 1900s | Korean national |
| 2 | Female | 1900s | Korean national |
| 3 | Male | 2000s | Korean national |
| 4 | Female | 2000s | Korean national |
| 5 | Male | 1900s | Foreign national |
| 6 | Female | 1900s | Foreign national |
| 7 | Male | 2000s | Foreign national |
| 8 | Female | 2000s | Foreign national |
Codes 9 and 0 exist for historical records only. The overwhelming majority of RRNs in active use carry codes 1–4.
The mod-11 check-digit algorithm
The check digit at position 13 is computed from the preceding 12 digits using a fixed weight sequence and modular arithmetic:
- Weights (fixed, repeating):
[2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5] - Weighted sum: multiply each digit by its corresponding weight and add them all up.
- Remainder: compute
weightedSum mod 11. - Subtract:
11 − remainder. - Final mod: take the result
mod 10to produce a single digit.
Concisely: check = (11 − (weightedSum mod 11)) mod 10
The final mod 10 step handles the case where step 4 yields 10 or 11 — both reduce to a
single digit (0 or 1) so the check digit is always in the range 0–9.
Example (obviously fake, for illustration)
Consider the fake number 850312-1234567. Breaking it down:
- Birth date digits:
8 5 0 3 1 2 - Gender/century code:
1(male, born 1900s → birth year 1985-03-12) - Serial digits:
2 3 4 5 - Sub-region digit:
6 - Check digit:
7
Weighted sum = (8×2)+(5×3)+(0×4)+(3×5)+(1×6)+(2×7)+(1×8)+(2×9)+(3×2)+(4×3)+(5×4)+(6×5) = 16+15+0+15+6+14+8+18+6+12+20+30 = 160
160 mod 11 = 6 → 11 − 6 = 5 → 5 mod 10 = 5
The expected check digit is 5, but the number ends in 7 — so this specific fake number fails the checksum. Paste it into the tool to see the breakdown live.
Every calculation runs locally. No data is uploaded or stored anywhere.