身分證格式
台灣身分證字號為 1 個大寫英文字母 + 9 個數字:
- 字母:戶籍登記時的縣市代碼(A=台北、F=新北、E=高雄…)。若想查戶籍地址對應的 3+3 郵遞區號,可另外查
- 第 2 碼:1 = 男、2 = 女(國民);6/7 或 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 年起新版:第 2 碼為 6(男)/ 7(女),與國民身分證同格式。第 1 碼仍為英文字母(戶籍縣市代碼)。
- 舊版:第 2 碼為 8(男)/ 9(女),舊系統相容用,現在新發證已不再使用。
- 驗證碼(最後 1 碼):與國民身分證使用相同 Checksum 演算法,所以這個工具一個邏輯就能驗兩種證號。
選「產生」+ 證號類型「外國人居留證」即可獲得測試用合法 ARC 號碼(限開發測試用)。
使用情境
- 表單前端驗證(避免格式錯誤送出)
- 測試環境填入測試資料(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 年新版:6 = 男、7 = 女(格式與國民相同,方便系統相容)。舊版外籍:8 = 男、9 = 女。本工具會自動判斷並標示性別與是否為外籍格式。
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 年起新版:第 2 碼從 8/9 改為 6/7,且整體格式(字母 + 9 數字 + checksum 規則)與國民身分證統一。改版前許多系統把外籍號擋掉,新版讓銀行 / 電商 / 政府系統都能用同一個驗證邏輯處理。
你輸入的號碼不會被收集
驗證是本機跑 checksum 演算法,你貼的身分證字號沒有傳輸、沒有記錄。 產生的號碼雖然格式合法,但對應的人並不一定存在,純粹是滿足 checksum 的合法格式而已。 嚴禁用於冒用他人身分或申辦業務。
