1.1 編碼格式
1999年我國頒發了第二代居民身份證號,公民身份號碼為18位,且終身不變。
居民身份證格式如:ABCDEFYYYYMMDDXXXR
1.1.1地址碼(ABCDEF)
表示登記戶口時所在地的行政區划代碼(省、市、縣),如果行政區划進行了重新划分,同一個地方進行戶口登記的可能存在地址碼不一致的情況。行政區划代碼按GB/T2260的規定執行。
1.1.2 出生日期碼(YYYYMMDD)
表示該居民的出生年月日,年4位數字,月和日分別用2位數字表示,如19491001,;出生日期碼是按GB/T 7408的規定執行的。
1.1.3 順序碼(XXX)
表示同一地址碼區域內,同年、同月、同日生的人所編訂的順序號,根據自己身份證的順序碼就可以知道:與我們同年同月同日生的同性至少有多少個,且在我們之前登記戶籍的有多少人。身份證順序碼的奇數分配給男性,偶數分配給女性。這就是為什么倒數第二位奇數表示男生,偶數表示女生。
1.1.4 校驗碼(R)
R之前的17位被稱為本體碼,R是根據本體碼,按照校驗碼算法(ISO 7064:1983,MOD 11-2校)計算出來的。當我們輸入身份號碼進行實名認證的時候,根據校驗碼算法可以初步判斷你輸入身份證號碼格式是否正確。
1.2 校驗碼
1、將前面的身份證號碼17位數分別乘以不同的系數。從第一位到第十七位的系數分別為:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ;
位置序號 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
加權因子 |
7 |
9 |
10 |
5 |
8 |
4 |
2 |
1 |
6 |
3 |
7 |
9 |
10 |
5 |
8 |
4 |
2 |
2、將這17位數字和系數相乘的結果相加;
3、用加出來和除以11,看余數是多少;
4、余數只可能有0 1 2 3 4 5 6 7 8 9 10這11個數字。其分別對應的最后一位身份證的號碼為1 0 X 9 8 7 6 5 4 3 2;
余數 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
校驗碼 |
1 |
0 |
X |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
5、通過上面得知如果余數是2,就會在身份證的第18位數字上出現羅馬數字的X。如果余數是10,身份證的最后一位號碼就是2;
例如:某男性的身份證號碼是34052419800101001X。我們要看看這個身份證是不是合法的身份證。
首先:我們計算3*7+4*9+0*10+5*5+...+1*2,前17位的乘積和是189
然后:用189除以11得出的結果是商17余2
最后:通過對應規則就可以知道余數2對應的數字是x。所以,這是一個合格的身份證號碼。