piapia123
en

ID Number Checker and Parser

Lookups

Everything runs locally in your browser — nothing is uploaded

Input
Drop a file here to load its contents
Output

Paste a batch of numbers and get, line by line, whether each one is usable and what it says. Validation has three gates, and any one of them may be what you are checking. The region code (first two digits) has to be a real province-level code. The birth date (digits 7 to 14) has to be a real calendar date that is not in the future. The check digit (the eighteenth) has to match what ISO 7064 MOD 11-2 computes. When something fails, the tool says which gate failed rather than calling the number invalid in general — that is what tells you what to fix. Fifteen-digit legacy numbers are flagged separately. Identity numbers issued before 1999 have fifteen digits and no check digit, so they can only be parsed by rule; their authenticity cannot be tested. The tool therefore reports them as parseable but unverifiable rather than valid — treating the two as the same would hand you a confident-looking conclusion with nothing behind it. Province level only, because city tables go stale. The first six digits are the full region code, but there are over two thousand city and county codes and they change every year as districts are merged or reorganised. The 34 province-level codes have been stable for decades, and giving you one fact fewer beats giving you a wrong one. Everything is computed on your machine; the numbers never leave the page. Identity numbers are among the worst things to send through a third-party server.

Features

  • Bulk validation: one number per line, a verdict for each, and one bad entry does not stop the batch
  • Each of the three gates reports its own reason: region code, birth date, check digit
  • Parses the birth date, gender, province and age
  • Birth dates are checked for existence: 30 February and future dates are both called out
  • Fifteen-digit legacy numbers parse for date and gender, and are clearly marked as having no check digit
  • Optionally list only the numbers that fail — the view to use when checking a roster
  • When everything passes it says so, instead of showing an empty table
  • Birth dates in ISO, compact or dotted form
  • Every row can be copied on its own, or copy the whole list
  • Everything runs locally in your browser; nothing is uploaded

How to use

  1. Paste one number per line, 18-digit or 15-digit
  2. Choose the output: full parse, birth dates only, or only the failures
  3. The result updates as you type; copy a single row or the whole list
  4. When checking a roster, use the failures-only view to spot the problems at a glance

FAQ

Why is a 15-digit number not reported as valid?
Because a 15-digit number has no check digit. The last digit of an 18-digit number is computed from the preceding seventeen, so changing any digit breaks the match; that is what lets it be tested. A 15-digit number (issued before 1999) has no such digit, so any combination of digits will “parse” into a date and a gender — authenticity cannot be judged at all. Calling that valid would be a conclusion with nothing behind it, so it is reported as parseable but unverifiable. Confirming a 15-digit number means going to the issuing authority’s records.
Why is the city or county not shown?
Because there are over two thousand city and county region codes and they change every year — merging a county into a district or setting up a new area rewrites the code — so shipping them means carrying a stale table nobody notices going bad. The 34 province-level codes have been stable for decades. Province level only, then: one fact fewer beats one fact wrong. For city detail, use the issuing authority or the official region code table.
How is the check digit computed?
By ISO 7064 MOD 11-2: multiply each of the first seventeen digits by a fixed weight (7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2), sum them, take the remainder modulo 11, and map remainders 0 to 10 onto the check characters `1 0 X 9 8 7 6 5 4 3 2`. A remainder of 10 gives the letter `X`. The algorithm is not there to stop forgery — anyone can recompute a check digit — but to catch single-character mistakes from transcription and data entry, and it catches almost every one-digit typo.
Are these numbers uploaded?
No. Validation and parsing are a handful of regular expressions and one modulo operation in your browser, and the page issues no requests at all. Identity numbers are among the most sensitive data this site handles — the tool keeps working with the network disconnected, which is itself the evidence that nothing was uploaded.

Related tools