[紀錄]身份證加權記算

起因

某一天朋友傳給我了一張強國論壇的身分證字號分析
我就心想強國都知道我國身分證的編碼方式了
我怎麼能不知道呢,於是我去找了很多資料整理如下

身分證字號的意義

目前的中華民國身分證字號一共有十碼,包括起首一個大寫的英文字母與接續的九個阿拉伯數字。其中首碼英文代碼是以初次登記的戶籍地來區分的,而首位數字則是拿來區分性別,男性為1、女性為2,與ISO 5218以及類似的《中華民國國家標準》CNS 8381《資訊交換-人類性別表示法》的用法相同。

身分證字號首碼英文代碼的對照表如下:

目前仍在使用中代碼

第一個字母 數值 代表縣市
A 10 臺北市
B 11 臺中市
C 12 基隆市
D 13 臺南市
E 14 高雄市
F 15 新北市
G 16 宜蘭縣
H 17 桃園市
I 34 嘉義市
J 18 新竹縣
K 19 苗栗縣
M 21 南投縣
N 22 彰化縣
O 35 新竹市
P 23 雲林縣
Q 24 嘉義縣
T 27 屏東縣
U 28 花蓮縣
V 29 臺東縣
W 32 金門縣
X 30 澎湖縣
Z 33 連江縣

已停用代碼

第一個字母 數值 原行政區 停發日期 現行行政區
L 20 臺中縣 2010年12月25日 臺中市
R 25 臺南縣 2010年12月25日 臺南市
S 26 高雄縣 2010年12月25日 高雄市
Y 31 陽明山管理局 1974年1月1日 臺北市

規則公式

先將第一個字母轉換成數字
假設有一身分證號碼為A123456789,而A轉換為數值是10
而身分證就會轉換成一串數字 10123456789
但我們還無法判定是否為有效的身分證字號

1
2
3
4
5
6
7
8
9
10
11
12
13
公式
第一個字母對應的第一位驗證碼 +
第一個字母對應的第二位驗證碼 *9 +
性別碼 *8 +
第二位數字 *7 +
第三位數字 *6 +
第四位數字 *5 +
第五位數字 *4 +
第六位數字 *3 +
第七位數字 *2 +
第八位數字 *1 +
第九位數字 *1

如果套入公式計算後整除,則為有效之身分證號碼