二代身份证号码编码规则
1.1 編碼格式
1999年我國(guó)頒發(fā)了第二代居民身份證號(hào),公民身份號(hào)碼為18位,且終身不變。
居民身份證格式如:ABCDEFYYYYMMDDXXXR
1.1.1地址碼(ABCDEF)
表示登記戶(hù)口時(shí)所在地的行政區(qū)劃代碼(省、市、縣),如果行政區(qū)劃進(jìn)行了重新劃分,同一個(gè)地方進(jìn)行戶(hù)口登記的可能存在地址碼不一致的情況。行政區(qū)劃代碼按GB/T2260的規(guī)定執(zhí)行。
1.1.2 出生日期碼(YYYYMMDD)
表示該居民的出生年月日,年4位數(shù)字,月和日分別用2位數(shù)字表示,如19491001,;出生日期碼是按GB/T 7408的規(guī)定執(zhí)行的。
1.1.3 順序碼(XXX)
表示同一地址碼區(qū)域內(nèi),同年、同月、同日生的人所編訂的順序號(hào),根據(jù)自己身份證的順序碼就可以知道:與我們同年同月同日生的同性至少有多少個(gè),且在我們之前登記戶(hù)籍的有多少人。身份證順序碼的奇數(shù)分配給男性,偶數(shù)分配給女性。這就是為什么倒數(shù)第二位奇數(shù)表示男生,偶數(shù)表示女生。
1.1.4 校驗(yàn)碼(R)
R之前的17位被稱(chēng)為本體碼,R是根據(jù)本體碼,按照校驗(yàn)碼算法(ISO 7064:1983,MOD 11-2校)計(jì)算出來(lái)的。當(dāng)我們輸入身份號(hào)碼進(jìn)行實(shí)名認(rèn)證的時(shí)候,根據(jù)校驗(yàn)碼算法可以初步判斷你輸入身份證號(hào)碼格式是否正確。
1.2 校驗(yàn)碼
1、將前面的身份證號(hào)碼17位數(shù)分別乘以不同的系數(shù)。從第一位到第十七位的系數(shù)分別為:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ;
|
位置序號(hào) |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
|
加權(quán)因子 |
7 |
9 |
10 |
5 |
8 |
4 |
2 |
1 |
6 |
3 |
7 |
9 |
10 |
5 |
8 |
4 |
2 |
2、將這17位數(shù)字和系數(shù)相乘的結(jié)果相加;
3、用加出來(lái)和除以11,看余數(shù)是多少;
4、余數(shù)只可能有0 1 2 3 4 5 6 7 8 9 10這11個(gè)數(shù)字。其分別對(duì)應(yīng)的最后一位身份證的號(hào)碼為1 0 X 9 8 7 6 5 4 3 2;
|
余數(shù) |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
校驗(yàn)碼 |
1 |
0 |
X |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
5、通過(guò)上面得知如果余數(shù)是2,就會(huì)在身份證的第18位數(shù)字上出現(xiàn)羅馬數(shù)字的X。如果余數(shù)是10,身份證的最后一位號(hào)碼就是2;
例如:某男性的身份證號(hào)碼是34052419800101001X。我們要看看這個(gè)身份證是不是合法的身份證。
首先:我們計(jì)算3*7+4*9+0*10+5*5+...+1*2,前17位的乘積和是189
然后:用189除以11得出的結(jié)果是商17余2
最后:通過(guò)對(duì)應(yīng)規(guī)則就可以知道余數(shù)2對(duì)應(yīng)的數(shù)字是x。所以,這是一個(gè)合格的身份證號(hào)碼。
總結(jié)
以上是生活随笔為你收集整理的二代身份证号码编码规则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: nRF52系列来袭,Nordic的低功耗
- 下一篇: 最长回文子串--动态规划