中國大陸身分證號碼校驗
校驗 18 位身分證號碼的檢查碼,解析歸屬省份、出生日期、性別與年齡
号码解读
批量校验
输入身份号码
演示号码为按规则构造的样例,仅用于查看解析过程。号码只在本机浏览器内计算,不上传、不缓存、不写入任何记录。
批量校验
工具介紹
「這個號碼對不對」和「這個號碼哪裡不對」是兩個問題。本工具不只給出通過與否,而是把 18 位號碼拆開、把檢查碼的乘加過程逐位列出來,讓輸入錯誤能被定位,而不是只被拒絕:
- 檢查碼驗證:依 GB 11643-1999 的加權取模演算法重算第 18 位,並顯示應有的正確值
- 逐位計算表:17 位數字、對應權值、逐項乘積、加權和、除以 11 的餘數與對照結果全部展開
- 四段結構拆解:6 位地址碼、8 位出生日期碼、3 位順序碼、1 位檢查碼分色標示
- 歸屬與個人資訊:地址碼前兩位對應省級行政區;出生日期碼還原生日、實歲、生肖;順序碼奇偶給出性別
- 日期合法性:辨識 2 月 30 日、13 月、閏年錯位等「格式對但日期不存在」的號碼
- 15 位舊號支援:自動補 19 升為 18 位,並給出升位後的完整號碼
- 批次校驗:一次貼上多個號碼,輸出通過數量、歸屬、生日、性別與應修正檢查碼的建議
使用情境
- 表單開發與資料遷移時驗證使用者填寫的號碼格式是否合法
- Excel 名單清理,批次篩出抄錯、漏位、檢查碼不符的紀錄
- 核對親友或歷史資料中的 15 位舊身分證號
- 理解號碼每一段的含義,判斷歸屬省份與年齡區間
- 排查「明明是對的號碼卻校驗不過」的末位 X 與空格問題
檢查碼演算法(可直接手算)
| 步驟 | 規則 |
|---|---|
| ① 取權值 | 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 |
| ② 逐位相乘求和 | 前 17 位數字分別乘以對應權值後相加,得到加權和 S |
| ③ 取餘數 | Y = S mod 11 |
| ④ 對照檢查碼 | 0→1 1→0 2→X 3→9 4→8 5→7 6→6 7→5 8→4 9→3 10→2 |
| ⑤ 比對 | 對照結果與第 18 位一致即通過;餘數為 2 時檢查碼是羅馬數字 X,不要寫成乘號或加號 |
常見問題
- 校驗通過就代表號碼真實存在嗎?不代表。檢查碼只能發現輸入錯誤,任何滿足加權取模規則的數字串都能通過校驗,真實性需由公安人口資訊系統核驗
- 為什麼不解析到市和縣?前 6 位中的第 3 至 4 位是地市碼、第 5 至 6 位是區縣碼,需要完整的 GB/T 2260 區劃表;且區劃會隨撤縣設區調整,早年發號的區域名可能已不存在,本工具只保證省級判讀準確
- 順序碼為什麼能看性別?順序碼是同一日同一地出生者的排序號,第 17 位奇數分配給男性、偶數分配給女性,這是標準規定而非經驗規律
- 港澳台居民號碼怎麼算?港澳台居民居住證同樣使用 18 位規則與同一套校驗演算法,地址碼以 81、82、83 開頭
- 15 位號碼還能用嗎?第一代 15 位號碼缺少出生世紀與檢查碼,已在換證時統一升為 18 位,本工具的升位結果僅用於核對歷史資料
需要隱藏名單中的敏感號碼可用隱私資訊遮掩;要把號碼批次匯出為 QR Code 或條碼做物料,可用 QR Code 產生器與條碼產生器;校驗演算法本身是加權和取模,與銀行卡校驗的 Luhn 思路可以對照理解。所有計算在本機瀏覽器完成,號碼不會傳送到伺服器。