2008/04/17

[驗證]身份證字號編碼原則

以此字號為例: A120987652
A <-- (數字*9) 第1碼為縣市,A是台北
1 <-- (數字*8) 第2碼為性別: 男1女2  =.=目前沒人妖
2 <-- (數字*7) 第3碼跟第4碼好像通常在0~2範圍,個人還沒看過3以上的
0 <-- (數字*6) 第4碼(同上)
9 <-- (數字*5) 第5碼~第9碼為0~9的數字
8 <-- (數字*4) 第6碼
7 <-- (數字*3) 第7碼
6 <-- (數字*2) 第8碼
5 <-- (數字*1) 第9碼
2 <-- (檢查碼) 第10碼

縣市編碼原則:
A=10 台北市    J=18 新竹縣    S=26 高雄縣
B=11 台中市    K=19 苗栗縣    T=27 屏東縣
C=12 基隆市    L=20 台中縣    U=28 花蓮縣
D=13 台南市    M=21 南投縣    V=29 台東縣
E=14 高雄市    N=22 彰化縣    W=32 金門縣
F=15 台北縣    O=35 新竹市    X=30 澎湖縣
G=16 宜蘭縣    P=23 雲林縣    Y=31 陽明山
H=17 桃園縣    Q=24 嘉義縣    Z=33 連江縣
I=34 嘉義市    R=25 台南縣

計算方式:

A編碼是10,拆開為 1 + ( 0 * 9 ) ;如果是 B = 11 =>   1 + ( 1 * 9 );
前九碼含加英文計算後:
( 1 + 0 * 9 ) + ( 1 * 8 ) + ( 2 * 7 ) + ( 0 * 6 ) + ( 9 * 5 ) + ( 8 * 4 ) + ( 7 * 3 ) + ( 6 * 2 ) + ( 5 * 1 )
= 1 + 8 + 14 + 0 + 45 + 32 + 21 + 12 + 5
= 138

檢查碼 = 10 - 前九碼計算後的個位數
= 10 - ( 138的個位數 )
= 10 - 8
所以檢查碼 = 2

沒有留言: