關于15位、18位身份證規則說明
第一代身份證15位數轉為第二代身份證18位數的規則如下:
在原十五位數身份證的第六位數后面插入19,這樣身份證號碼長度變為17位;
按照國家規定的統一公式計算出第18位數,作為校驗碼放在第二代身份證的尾號,公式如下:
校驗碼計算方法:將身份證前17位數分別乘以不同系數,從第1至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,這樣就得出了第二代身份證第18位數的校驗碼。
目前的第二代身份證號碼18位數字就是一組特征組合碼,由17位數字本體碼和一位校驗碼組成。排列順序從左至右依次為:6位數字地址碼、8位數字出生日期碼、3位數字順序碼和1位數字校驗碼。
地址碼(前6位數):表示身份證編碼對象常住戶口所在省(直轄市、自治區)、地(市),以及縣(市、旗、區)的行政區劃代碼,按照GB/T2260的規定執行。其中:前1、2位數字表示所在省(直轄市、自治區)的代碼;第3、4位數字表示所在地(市)的代碼;第5、6位數字表示:所在縣(市、旗、區)的代碼。
出生日期碼(第7位至14位):表示身份證編碼對象出生的年、月、日,按GB/T7408的規定執行,年、月、日代碼之間不用分隔符。
順序碼(第15位至17位):表示在同一地址碼所標識的區域范圍內,對同年、同月、同日出生的人編定的順序號,順序碼的奇數分配給男性,偶數分配給女性。
校驗碼(第18位數):作為尾號的校驗碼,是由身份證號碼編制單位按統一的公式計算出來的。
Python實現源碼分享
希望對你有所幫助。