身分證格式
台灣身分證字號為 1 個大寫英文字母 + 9 個數字:
- 字母:戶籍登記時的縣市代碼(A=台北、F=新北、E=高雄…)。若想查戶籍地址對應的 3+3 郵遞區號,可以用郵遞區號查詢工具另外查。
- 第 2 碼:1 = 男、2 = 女(國民);8 = 男、9 = 女(新式外來人口統一證號)
- 第 3-9 碼:流水號
- 第 10 碼:checksum 校驗碼
身分證 Checksum 計算(權重 1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1)
台灣身分證字號驗證的官方 checksum 演算法:
- 第 1 碼英文字母先轉成 2 位數:A=10、B=11、C=12、… I=34、O=35、Z=33。
- 展開為 11 位數字:
[L1, L2, d1, d2, d3, d4, d5, d6, d7, d8, d9],其中 L1 / L2 為字母拆成的兩位數,d1~d9 為後 9 碼。 - 對應權重序列:
[1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1],每位數字乘以對應權重後加總。 - 加總結果
mod 10 = 0即為合法身分證字號。
例:A123456789 → A=10 拆 [1, 0]、後 9 碼 [1, 2, 3, 4, 5, 6, 7, 8, 9]、總和 = 1×1 + 0×9 + 1×8 + 2×7 + 3×6 + 4×5 + 5×4 + 6×3 + 7×2 + 8×1 + 9×1 = 130、mod 10 = 0 ✓ 合法。
外國人統一證號 / 居留證號(ARC)格式
外國人在台居留會拿到「外國人統一證號」(也稱「居留證號」),印在 ARC(Alien Resident Certificate)卡上。本工具可以驗證這類證號,也能產生測試用號碼:
- 新式(2021/1/2 起核發):1 個字母 + 9 個數字,與國民身分證同格式。第 2 碼 8 = 男、9 = 女;第 3 碼是身分碼(0–6 外國人及無國籍人士、7 無戶籍國民、8 港澳居民、9 大陸地區人民);第 1 碼是區域碼,代表申請地、同國民身分證的字母規則。
- 舊式(2 碼英文開頭):2 個英文字母 + 8 個數字,第 2 碼 A–D 同時表達身分與性別(無戶籍國民、大陸、港澳:A 男 B 女;外國人、無國籍:C 男 D 女)。依移民署公告,舊式至 2030 年 12 月 31 日仍有效、2031 年起停止適用——在那之前,驗證系統兩種都要收。
- 檢查碼(最後 1 碼):與國民身分證使用相同的 checksum 演算法(舊式的第 2 碼字母轉數字後取個位、權重 8),本工具三種格式都能驗、也都能產生測試號碼。
要拿測試用的 ARC 號碼,把下方產生器的證號類型切到「統一證號(新式,2021 起)」或「統一證號(舊式)」即可(限開發測試用)。
健保卡號格式
健保卡號是 12 碼純數字,印在健保卡正面下方。健保署沒有公開它的 check digit 演算法,所以本工具的「健保卡號」分頁只做 12 碼純數字的格式檢查,不做真偽判斷——格式對只代表「長得像」, 實際效力要以健保署系統為準。
護照號碼格式
台灣護照號碼有兩種樣式:早期紙本護照是 9 碼純數字,晶片護照是 1 個大寫字母 + 8 碼數字。外交部同樣沒有公開檢查碼演算法,「護照號碼」分頁做的是 格式檢查並標示屬於哪一種樣式。
使用情境
- 表單前端驗證(避免格式錯誤送出)
- 測試環境填入測試資料(QA、Mock);需要假名、假帳號可搭配 UUID 產生器 湊一組測試帳號
- 後端 API 接收身分證時的格式預驗
- 練習 checksum 演算法
常見問題
產生的身分證號可以拿去申辦業務嗎?
絕對不行。本工具產生的號碼僅滿足 checksum 演算法,格式合法,但對應的人並不一定存在。冒用他人身分屬刑事犯罪,會涉及偽造文書、詐欺等罪。本工具僅用於開發測試、表單前端驗證、QA mock 等正當用途。
身分證第一個字母代表什麼?
代表戶籍登記時的縣市代碼:A=台北市、B=台中市、C=基隆市、D=台南市、E=高雄市、F=新北市、G=宜蘭縣、H=桃園市、I=嘉義市、J=新竹縣、K=苗栗縣、L=台中縣(已併入 B)等。改地址後字母不變,終身保留原登記縣市。
第 2 碼怎麼判斷男女?外籍呢?
國民身分證:1 = 男、2 = 女。外來人口統一證號(居留證號)依移民署規則分兩式——新式(2021/1/2 起核發):8 = 男、9 = 女,整體格式與國民身分證相同;舊式:第 2 碼是英文字母 A–D(無戶籍國民、大陸、港澳人士:A 男 B 女;外國人、無國籍人士:C 男 D 女),舊式至 2030 年底仍有效。本工具會自動判斷並標示類型、性別與身分別。
Checksum 怎麼算?我能手動驗證嗎?
步驟:字母轉成 2 位數(A=10、B=11、…、I=34、O=35)拆成十位 + 個位,與後 9 碼依加權序列 [1,9,8,7,6,5,4,3,2,1,1] 相乘加總,總和 mod 10 = 0 即合法。可手算驗證,本工具也即時顯示計算過程。
我可以從身分證號查出生年份或地址嗎?
不行。身分證號不含出生年月日(與護照、健保卡不同)。第 3-9 碼是流水號,無規則可逆推。字母只代表「初次登記」的縣市,現居地址需另外查詢。若想查詢地址對應的郵遞區號,請另外用郵遞區號查詢工具。
統一證號(外籍)2021 年新版改了什麼?
依移民署公告,2021 年 1 月 2 日起核發的新式統一證號改為「1 個字母 + 9 個數字」,與國民身分證完全同格式:第 2 碼 8 代表男性、9 代表女性,第 3 碼是身分碼(0–6 外國人及無國籍人士、7 無戶籍國民、8 港澳居民、9 大陸地區人民),檢查碼演算法也與身分證相同——銀行、電商、政府系統從此能用同一套驗證邏輯。改版前的舊式證號是「2 個英文字母 + 8 個數字」,新舊並行到 2030 年 12 月 31 日,2031 年起舊式停止適用。
你輸入的號碼不會被收集
驗證是本機跑 checksum 演算法,你貼的身分證字號沒有傳輸、沒有記錄。 產生的號碼雖然格式合法,但對應的人並不一定存在,純粹是滿足 checksum 的合法格式而已。 嚴禁用於冒用他人身分或申辦業務。
