跳到主要內容
楓葉工具箱 ToolMaple

開發最後更新:

身分證產生器與驗證

產生測試用的身分證字號,或貼一組進來看它合不合法、是哪個縣市。居留證號也支援。

驗證

號碼只在你的瀏覽器內運算,不會上傳或被記錄。

產生測試用合法號碼

產生的測試號碼
—

僅供開發測試使用,勿用於真實申辦或冒用他人身分。

身分證格式

台灣身分證字號為 1 個大寫英文字母 + 9 個數字:

  • 字母:戶籍登記時的縣市代碼(A=台北、F=新北、E=高雄…)。若想查戶籍地址對應的 3+3 郵遞區號,可以用郵遞區號查詢工具另外查。
  • 第 2 碼:1 = 男、2 = 女(國民);8 = 男、9 = 女(新式外來人口統一證號)
  • 第 3-9 碼:流水號
  • 第 10 碼:checksum 校驗碼

十碼裡有九碼是身分資訊,只有最後一碼是拿來自我檢查的。 所以肉眼看「長得像」永遠判不出真假,一定要把前九碼算過一次, 再跟第 10 碼對。下面那節就是這個算法。

身分證 Checksum 計算(權重 1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1)

台灣身分證字號驗證的官方 checksum 演算法:

  1. 第 1 碼英文字母先轉成 2 位數:A=10、B=11、C=12、… I=34、O=35、Z=33。
  2. 展開為 11 位數字:[L1, L2, d1, d2, d3, d4, d5, d6, d7, d8, d9],其中 L1 / L2 為字母拆成的兩位數,d1~d9 為後 9 碼。
  3. 對應權重序列:[1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1],每位數字乘以對應權重後加總。
  4. 加總結果 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 ✓ 合法。

四個分頁各驗到什麼程度

工具上方有四個分頁,能耐並不一樣,選錯分頁會誤會結果的意思。 身分證/居留證與統一編號有公開的檢查碼演算法,所以能算到「檢查碼對不對」; 健保卡號與護照號碼的檢查碼規則沒有公開,所以只能檢查格式。 兩者都不代表這張證件真的存在。

  • 身分證/居留證:驗檢查碼、解析類型、性別、縣市與身分別,也在這一頁產生測試號碼。
  • 統一編號:公司行號的 8 碼統編;完整說明另見統一編號驗證與產生器。
  • 健保卡號、護照號碼:只做格式檢查,理由見下面兩段。

外國人統一證號 / 居留證號(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 碼數字。外交部同樣沒有公開檢查碼演算法,「護照號碼」分頁做的是 格式檢查並標示屬於哪一種樣式。

貼一組號碼進來,怎麼看結果

  1. 留在第一個分頁,把號碼貼進「輸入身分證字號或居留證號(ARC)」。 全形字元、空白與連字號會先被清掉,從 LINE 訊息或 PDF 複製過來不必自己整理。
  2. 結果卡會直接說合法或不合法。不合法時分兩種原因:格式對不上, 或者格式對、檢查碼對不上。後者幾乎都是抄錯或漏打一碼。
  3. 合法時一併標出是哪一種號碼(國民身分證、新式統一證號、舊式統一證號)、 性別,以及第 1 碼對應的縣市;統一證號還會標出身分別。
  4. 想確認算法有沒有算錯,展開「計算過程(逐位加權)」, 每一位的數字、權重與乘積都列出來,可以自己拿紙筆對一次。
  5. 縣市請當作「初次設籍」的地方看,不是現在的住址。搬家不會改字母。
  6. 健保卡號與護照號碼要切到各自的分頁, 那兩個分頁的通過只代表格式合規,不是真偽判斷。

產生測試用號碼

  1. 捲到「產生測試用合法號碼」那一區。
  2. 先選證號類型:中華民國國民身分證、統一證號(新式,2021 起,第 2 碼 8/9)、統一證號(舊式,2 碼英文開頭)。 你的系統要收哪一種,就選哪一種來測。
  3. 再選性別。選項一改,下面的號碼會立刻換一組符合的新號。
  4. 按「複製」把號碼帶走,按「重新產生」換下一組。一次只會給一組, 要湊多筆就重複這兩個動作。
  5. 產出的號碼只滿足檢查碼、格式合法,不對應任何真實存在的人,也不是任何人的身分證字號。只能用在開發測試,不得拿去申辦業務或冒用他人身分。

把號碼帶到你的測試環境

複製鈕會把號碼原樣放進剪貼簿,沒有多餘的空白或標點, 可以直接貼進表單欄位、單元測試的固定值、seed 資料的 CSV,或 API 測試工具的請求內容。手機上也能長按號碼自己選取。

  • 要一整組測試個資:姓名、地址、電話一起來的話,用台灣假資料產生器比較省事,這頁專心處理證號本身。
  • 寫進版本控制之前標清楚:測試資料檔案裡加一行註解說明這是產生器產生的假號碼, 日後接手的人才不會把它當成真的個資在處理。
  • 截圖、工單、簡報一律用假號:要示範驗證畫面就用這裡產生的號碼,不要貼真實民眾的證號。 工單與聊天記錄會被搜尋、會被備份,常常留很多年。
  • 別讓假號碼流進正式資料:測試環境與正式環境共用資料庫時特別危險, 匯入前確認連的是測試環境。

使用情境

  • 表單前端驗證(避免格式錯誤送出)
  • 測試環境填入測試資料(QA、Mock);需要假名、假帳號可搭配 UUID 產生器 湊一組測試帳號
  • 後端 API 接收身分證時的格式預驗
  • 練習 checksum 演算法

台灣這邊收號碼的系統會遇到什麼

  • 新舊統一證號並行期:依移民署公告,舊式至 2030 年 12 月 31 日仍有效、2031 年起停止適用。在那之前,收證號的欄位兩種格式都要收, 只認新式會把持舊證的人擋在外面。
  • 欄位長度留 10 碼:國民身分證是 1 字母加 9 數字、新式統一證號同格式、舊式是 2 字母加 8 數字,三種都剛好 10 個字元,欄位上限設 10 就夠。
  • 貼進來的格式很髒:使用者常從 PDF、LINE 或試算表複製,帶著全形英數字、空白或連字號。 本頁在驗證前會先做全形轉半形並去掉空白與連字號, 你自己的後端最好也照做,否則會出現「明明對的卻說格式錯」的客訴。
  • 縣市字母裡有歷史代碼:L、R、S 對應的台中縣、台南縣、高雄縣已經併入直轄市,Y 則是早年的陽明山管理局。 老一輩的證號上還看得到,驗證時照收, 不要因為「這個縣市已經不存在」就判為錯。
  • 健保卡號與護照沒有公開算法:需要真偽確認時,只能透過各該主管機關的查驗管道, 任何線上工具都做不到,本頁也沒有。
  • 個資法的範圍:身分證字號是識別個人的資料,蒐集、處理與利用有法定要件。 表單真的需要它之前先問一次「這個欄位可以不要嗎」, 實際適用以主管機關與法規最新規定為準。

你輸入的號碼不會被收集

驗證是本機跑 checksum 演算法,你貼的身分證字號沒有傳輸、沒有記錄。 產生的號碼雖然格式合法,但對應的人並不一定存在,純粹是滿足 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 年起舊式停止適用。

資料來源

  • 外來人口統一證號的新式與舊式格式、身分碼、性別碼與新舊並行期間,依內政部移民署公告的「外來人口統一證號格式說明」。
  • 國民身分證字號的編配與縣市代碼,主管機關為內政部戶政司。
  • 健保卡與卡號相關規定見衛生福利部中央健康保險署;護照號碼樣式見外交部領事事務局。兩者都沒有公開檢查碼演算法。
  • 格式與適用期限都可能調整,實際以主管機關最新公告為準;個案請洽各該機關。

相關工具

隱私:驗證與產生都在你的瀏覽器裡跑,號碼不會上傳、不會儲存,本站沒有任何後端收得到它; 頁面也對錄影分析工具遮蔽輸入內容,分析只記錄「有人複製了一次、產生了一次」。 唯一會留下的是你選的分頁、證號類型與性別:選項記在你的瀏覽器,不含證號,下次來直接套用; 回訪時工具上方會出現「恢復預設」,按一下就清除。