18身份證號碼編碼規則

 

       一、身份證號碼執行標準:18位身份證標準在國家質量技術監督局於1999年7月1日實施的GB11643-1999《公民身份號碼》。

GB11643-1999《公民身份號碼》爲GB11643-1989《社會保障號碼》的修訂版,其中指出將原標準名稱“社會保障號碼”更名爲“公民身份號碼”,另外GB11643-1999《公民身份號碼》從實施之日起代替GB11643-1989。

二、編碼規則:公民身份號碼是特徵組合碼,由十七位數字本體碼和一位校驗碼組成。排列順序從左至右依次爲:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位校驗碼,可以用字母表示如爲ABCDEFYYYYMMDDXXXR。其含義如下:

1. 地址碼(ABCDEF):表示編碼對象常住戶口所在縣(市、旗、區)的行政區劃代碼,按GB/T2260的規定執行。

2. 出生日期碼(YYYYMMDD):表示編碼對象出生的年、月、日,按GB/T7408的規定執行,年、月、日分別用4位、2位(不足兩位加0)、2(同上)位數字表示,之間不用分隔符。

3. 順序碼(XXX):表示在同一地址碼所標識的區域範圍內,對同年、同月、同日出生的人編定的順序號,順序碼的奇數分配給男性,偶數分配給女性。

4.校驗碼(R),一位數字,通過前17位數字根據一定計算得出。

       三、關於地址碼含義的詳細解釋:

      身份證前六位是地區代碼,我們用ABCDEF表示。 代碼的解釋規則如下:

      A:國內區域

      1 華北三省二市

      2 東北三省

      3 華東六省一市

      4 華南六省

      5 西南四省一市

      6 西北五省

      7 臺灣

      8 港澳

    B(或者說是AB,就是前2位):省(直轄市,自治區,特別行政區)代碼

      按照A劃定的分區定義省代碼,有直轄市的,直轄市列前,其餘按離直轄市的距離排序,沒有直轄市的,按離北京的遠近排序。

      具體省(直轄市,自治區,特別行政區)代碼如下:

      11-15 京 津冀 晉 蒙

      21-23 遼 吉黑

      31-37 滬 蘇浙 皖 閩 贛 魯

      41-46 豫 鄂湘 粵 桂 瓊

      50-54 渝 川貴 雲 藏

      61-65 陝 甘青 寧 新

        81-82 港 澳

       CD:城市代碼

       從01開始排,對於直轄市,CD=01表示市轄區,CD=02表示轄縣;省的城市代碼從省會開始排,比如2101=瀋陽 2102=大連…… 只有地級城市有獨立的城市代碼,縣級市沒有。
        EF:市轄區、郊區、郊縣、縣級市代碼

       如果EF=00,指代這個城市,不特定區縣;對於非直轄市,如EF=01,指代市轄區(任意一個區),02開始指代特定的區。

          其中:

          E=0代表市轄區,

          E=1代表郊區,

          E=2代表郊縣,

          E=8代表縣級市。

       對於直轄市,從01開始就依次排區,沒有市區和郊區的代碼區分。:

有關更詳細的資料見附錄。

       四、生日期碼(YYYYMMDD)表示編碼對象出生的年、月、日,其中年份用四位數字表示,年、月、日之間不用分隔符。例如:1981年05月11日就用19810511表示。

       五、順序碼(XXX)(身份證第十五位到十七位)是縣、區級政府所轄派出所的分配碼,每個派出所分配碼爲10個連續號碼,例如“000-009”或 “060-069”,其中單數爲男性分配碼,雙數爲女性分配碼,如遇同年同月同日有兩人以上時順延第二、第三、第四、第五個分配碼。如:007的就是個男生,而且和他同年月日生的男生至少有兩個,他們的後四位是001*和003*。分配順序碼中“999、998、997、996”四個順序號分別爲男女性百歲以上老人專用的特定編號。

       六、關於校驗碼

        校驗碼是通過一系列數學計算得出來的,具體校驗的計算方式如下:

1. 對前17位數字本體碼加權求和
公式爲:S = Sum(Ai * Wi), i = 0, ... , 16
其中Ai表示第i位置上的身份證號碼數字值,Wi表示第i位置上的加權因子,其各位對應的值依次爲: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

    通俗解釋:身份證第一位數字X7+第二位X9+第三位X10+第四位X5+第五位X5+第六位X8+第七位X4+第八位X1+第九位X6+第十位X3+十一位X7+十二位X9+十三位X10+十四位X5+十五位X8+十六位X4+十七位X2;計算出總和(用S)表示。

2. 以11對計算結果取模

Y = mod(S, 11)

    通俗解釋:用S除以11,看最後的餘數。如果除盡,爲0;餘數爲1,則計爲1;最大餘數爲10;全部數字爲0-10共11個數字。(用Y表示)。

3. 根據模的值得到對應的校驗碼
對應關係爲:
Y值:   0 1 2 3 4 5 6 7 8 9 10
校驗碼: 1 0 X 9 8 7 6 5 4 3 2
        通俗解釋:餘數爲0,則校驗碼爲1;依次類推:餘數爲1,則校驗碼對應0;以下:2--X;3--9;4--8;5--7;6--6;7--5;8--4;9-3;10-2。

       如果校驗碼不符合這個規則,則肯定是假號碼。
       關於18位身份證號碼尾數是“X”的一種解釋:因爲按照上面的規則,校驗碼有11個,而不是10個,所以不能用0-9表示。所以如果尾號是10,那麼就得用X來代替,因爲如果用10做尾號,那麼此人的身份證就變成了19位,而19位的號碼違反了國家標準,並且我國的計算機應用系統也不承認19位的身份證號碼。Ⅹ是羅馬數字的10,用X來代替10,可以保證公民的身份證符合國家標準。
       根據〖中華人民共和國國家標準 GB 11643-1999〗中有關公民身份號碼的規定,公民身份號碼是特徵組合碼,由十七位數字本體碼和一位數字校驗碼組成。排列順序從左至右依次爲:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。

15位升18的方法

      根據〖中華人民共和國國家標準 GB 11643-1999〗中有關公民身份號碼的規定,公民身份號碼是特徵組合碼,由十七位數字本體碼和一位數字校驗碼組成。排列順序從左至右依次爲:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。
       地址碼錶示編碼對象常住戶口所在縣(市、旗、區)的行政區劃代碼。生日期碼錶示編碼對象出生的年、月、日,其中年份用四位數字表示,年、月、日之間不用分隔符。順序碼錶示同一地址碼所標識的區域範圍內,對同年、月、日出生的人員編定的順序號。順序碼的奇數分給男性,偶數分給女性。校驗碼是根據前面十七位數字碼,按照ISO 7064:1983.MOD 11-2校驗碼計算出來的檢驗碼。下面舉例說明該計算方法。
      15位的身份證編碼首先把出生年擴展爲4位,簡單的就是增加一個19,但是這對於1900年出生的人不使用(這樣的壽星不多了)。

附錄一:校驗碼的計算方法舉例:

某男性公民身份號碼本體碼爲34052419800101001,首先按照公式(1)計算:
∑(ai×Wi) mod 11……………………………………(1)
公式(1)中:
i----表示號碼字符從右至左包括校驗碼在內的位置序號;
ai----表示第i位置上的號碼字符值;
Wi----示第i位置上的加權因子,其數值依據公式Wi=(2 的 i-1 次冪)(mod 11)計算得出。
I      18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Ai     3 4 0 5 2 4 1 9 8 0 0 1 0 1 0 0 1 a1
Wi     7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
ai×Wi 21 36 0 25 16 16 2 9 48 0 0 9 0 5 0 0 2 a1
根據公式(1)進行計算:
∑(ai×Wi) =(21+36+0+25+16+16+2+9+48++0+0+9+0+5+0+0+2) = 189
189 ÷ 11 = 17 + 2/11 (餘數爲2)
∑(ai×Wi) mod 11 = 2
然後根據計算的結果,從下面的表中查出相應的校驗碼,其中X表示計算結果爲10(男性爲大寫X;女性爲小寫x):
∑(ai×WI)(mod 11) 0 1 2 3 4 5 6 7 8 9 10
校驗碼字符值ai     1 0 X 9 8 7 6 5 4 3 2
根據上表,查出計算結果爲2的校驗碼爲所以該人員的公民身份號碼應該爲 34052419800101001X。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章