中國居民身份證號碼編碼規則
第一、二位表示省(自治區、直轄市、特別行政區)。
第三、四位表示市(地級市、自治州、盟及國家直轄市所屬市轄區和縣的匯總碼)。其中,01-20,51-70表示省直轄市;21-50表示地區(自治州、盟)。
第五、六位表示縣(市轄區、縣級市、旗)。01-18表示市轄區或地區(自治州、盟)轄縣級市;21-80表示縣(旗);81-99表示省直轄縣級市。
第七、十四位表示出生年月日(單數字月日左側用0補齊)。其中年份用四位數字表示,年、月、日之間不用分隔符。例如:1981年05月11日就用19810511表示。
第十五、十七位表示順序碼。對同地區、同年、月、日出生的人員編定的順序號。其中第十七位奇數分給男性,偶數分給女性。
第十八位表示校驗碼。作為尾號的校驗碼,是由號碼編制單位按統一的公式計算出來的,校驗碼如果出現數字10,就用X來代替,詳情參考下方計算方法。
中國居民身份證校驗碼算法
步驟如下:
- 將身份證號碼前面的17位數分別乘以不同的系數。從第一位到第十七位的系數分別為:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。
- 將這17位數字和系數相乘的結果相加。
- 用加出來和除以11,取余數。
- 余數只可能有0-1-2-3-4-5-6-7-8-9-10這11個數字。其分別對應的最后一位身份證的號碼為1-0-X-9-8-7-6-5-4-3-2。
- 通過上面計算得知如果余數是3,第18位的校驗碼就是9。如果余數是2那么對應的校驗碼就是X,X實際是羅馬數字10。
例如:某男性的身份證號碼為【53010219200508011x】, 我們看看這個身份證是不是合法的身份證。首先我們得出前17位的乘積和【(5*7)+(3*9)+(0*10)+(1*5)+(0*8)+(2*4)+(1*2)+(9*1)+(2*6)+(0*3)+(0*7)+(5*9)+(0*10)+(8*5)+(0*8)+(1*4)+(1*2)】是189,然后用189除以11得出的結果是189/11=17----2,也就是說其余數是2。最后通過對應規則就可以知道余數2對應的檢驗碼是X。所以,可以判定這是一個正確的身份證號碼。