首頁 › 程式開發 › 中國大陸身分證號碼校驗
🔧

中國大陸身分證號碼校驗

校驗 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 思路可以對照理解。所有計算在本機瀏覽器完成,號碼不會傳送到伺服器。