如何辨別十八身份證號碼 掌握18位身份證的基本知識,就能快速辨別身份證的真假. 根據〖中華人民共和國國家標準 GB 11643-1999〗中有關公民身份號碼的規(guī)定,公民身份號碼是特征組合碼,由十七位數字本體碼和一位數字校驗碼組成。排列順序從左至右依次為:第一到第六位數字地址碼,從第七位數到第十四位數的八個數字是出生日期碼,第十五位到第十七位數的三個位數是順序碼,第十八位數字是校驗碼。 地址碼(身份證前六位)表示編碼對象常住戶口所在縣(市、旗、區(qū))的行政區(qū)劃代碼。全國所有行政區(qū)域的編碼,可以到<中華人民共和國國家統(tǒng)計局>的網站上查詢<最新的縣及縣以上的行政編碼資料>. 《中華人民共各國國家統(tǒng)計局》 最新縣市編碼網址如下 http://www.stats.gov.cn/tjbz/xzqhdm/t20090626_402568086.htm 生日期碼(身份證第七位到第十四位)表示編碼對象出生的年月日,其中年份用四位數字表示,月份和出生日都用二位數字表示,年月日之間不用分隔符。都是按(公元)陽歷為準. 例如:一九四一年八月十八日就用19410818表示。 順序碼(身份證第十五位到十七位)是同一行政區(qū)域范圍內對同年同月同日出生的人,所編定的順序標識號碼。<其中第十七位奇數分給男性,偶數分給女性。> 第十八位是校驗碼(身份證最后一位數)是根據前面十七位數字碼,按照ISO 7064:1983.MOD 11-2校驗碼計算出來的檢驗碼。 第十八位數字的計算方法為: 一.將前面的身份證號碼17位數分別乘以不同的系數。從第一位到第十七位的系數分別為:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 二.將這17位數字和系數相乘的結果相加。 三,用加出來和除以11,看余數是多少? 注:以上三步用數學公司表示為∑(ai×Wi)(mod 11) 四.余數只可能有0 1 2 3 4 5 6 7 8 9 10這11個數字。其分別對應的最后一位身份證的號碼為1 0 X 9 8 7 6 5 4 3 2。 注:如果余數是2,就會在身份證的第18位數字上出現羅馬數字的Ⅹ。如果余數是10,身份證的最后一位號碼就是2。 〖中華人民共和國國家標準 GB 11643-1999〗 將15的身份證號升為18位(根據GB 11643-1999) 轉換15位身份證號碼位18位 功能:將15的身份證號升為18位(根據GB 11643-1999) 參數:原來的號碼(15位) 返回:升位后的18位號碼 用法:=IDCODE(a1) (假設A1放的是原15位號碼) 關于身份證號碼最后一位的校驗碼的算法如下: 我國現行使用公民身份證號碼有兩種尊循兩個國家標準,〖GB 11643-1989〗和〖GB 11643-1999〗。〖GB 11643-1989〗中規(guī)定的是15位身份證號碼:排列順序從左至右依次為:六位數字地址碼,六位數字出生日期碼,三位數字順序碼,其中出生日期碼不包含世紀數?!糋B 11643-1999〗中規(guī)定的是18位身份證號碼:公民身份號碼是特征組合碼,由十七位數字本體碼和一位數字校驗碼組成。排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。地址碼表示編碼對象常住戶口所在縣(市、旗、區(qū))的行政區(qū)劃代碼。生日期碼表示編碼對象出生的年、月、日,其中年份用四位數字表示,年、月、日之間不用分隔符。順序碼表示同一地址碼所標識的區(qū)域范圍內,對同年、月、日出生的人員編定的順序號。順序碼的奇數分給男性,偶數分給女性。校驗碼是根據前面十七位數字碼,按照ISO 7064:1983.MOD 11-2校驗碼計算出來的檢驗碼。公式如下: ∑(a[i]*W[i]) mod 11 ( i = 2, 3, ..., 18 ) (1) "*" 表示乘號 i--------表示身份證號碼每一位的序號,從右至左,最左側為18,最右側為1?! [i]-----表示身份證號碼第 i 位上的號碼 W[i]-----表示第 i 位上的權值 W[i] = 2^(i-1) mod 11 計算公式 (1) 令結果為 R 根據下表找出 R 對應的校驗碼即為要求身份證號碼的校驗碼C?! 0 1 2 3 4 5 6 7 8 9 10 C 1 0 X 9 8 7 6 5 4 3 2 由此看出 X 就是 10,羅馬數字中的 10 就是X,所以在新標準的身份證號碼中可能含有非數字的字母X。 有如下方法,各位自己研究一下. 方法一: private string getNewId(string id) { int num=0; string newid,co
|
|