日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

如何辨別十八位數(shù)身份證號(hào)碼

 赫堇軒 2014-01-15

如何辨別十八身份證號(hào)碼

掌握18位身份證的基本知識(shí),就能快速辨別身份證的真假.

  根據(jù)〖中華人民共和國(guó)國(guó)家標(biāo)準(zhǔn) GB 11643-1999〗中有關(guān)公民身份號(hào)碼的規(guī)定,公民身份號(hào)碼是特征組合碼,由十七位數(shù)字本體碼和一位數(shù)字校驗(yàn)碼組成。排列順序從左至右依次為:第一到第六位數(shù)字地址碼,從第七位數(shù)到第十四位數(shù)的八個(gè)數(shù)字是出生日期碼,第十五位到第十七位數(shù)的三個(gè)位數(shù)是順序碼,第十八位數(shù)字是校驗(yàn)碼。

地址碼(身份證前六位)表示編碼對(duì)象常住戶口所在縣(市、旗、區(qū))的行政區(qū)劃代碼。全國(guó)所有行政區(qū)域的編碼,可以到<中華人民共和國(guó)國(guó)家統(tǒng)計(jì)局>的網(wǎng)站上查詢<最新的縣及縣以上的行政編碼資料>.

 《中華人民共各國(guó)國(guó)家統(tǒng)計(jì)局》

最新縣市編碼網(wǎng)址如下

http://www.stats.gov.cn/tjbz/xzqhdm/t20090626_402568086.htm

生日期碼(身份證第七位到第十四位)表示編碼對(duì)象出生的年月日,其中年份用四位數(shù)字表示,月份和出生日都用二位數(shù)字表示,年月日之間不用分隔符。都是按(公元)陽(yáng)歷為準(zhǔn).

例如:一九四一年八月十八日就用19410818表示。

順序碼(身份證第十五位到十七位)是同一行政區(qū)域范圍內(nèi)對(duì)同年同月同日出生的人,所編定的順序標(biāo)識(shí)號(hào)碼。<其中第十七位奇數(shù)分給男性,偶數(shù)分給女性。>

第十八位是校驗(yàn)碼(身份證最后一位數(shù))是根據(jù)前面十七位數(shù)字碼,按照ISO 7064:1983.MOD 11-2校驗(yàn)碼計(jì)算出來(lái)的檢驗(yàn)碼。

第十八位數(shù)字的計(jì)算方法為:

  一.將前面的身份證號(hào)碼17位數(shù)分別乘以不同的系數(shù)。從第一位到第十七位的系數(shù)分別為:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

  二.將這17位數(shù)字和系數(shù)相乘的結(jié)果相加。

  三,用加出來(lái)和除以11,看余數(shù)是多少?

  注:以上三步用數(shù)學(xué)公司表示為∑(ai×Wi)(mod 11)

  四.余數(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ù)是2,就會(huì)在身份證的第18位數(shù)字上出現(xiàn)羅馬數(shù)字的Ⅹ。如果余數(shù)是10,身份證的最后一位號(hào)碼就是2。

〖中華人民共和國(guó)國(guó)家標(biāo)準(zhǔn) GB 11643-1999〗

將15的身份證號(hào)升為18位(根據(jù)GB 11643-1999)

      轉(zhuǎn)換15位身份證號(hào)碼位18位 功能:將15的身份證號(hào)升為18位(根據(jù)GB 11643-1999) 參數(shù):原來(lái)的號(hào)碼(15位) 返回:升位后的18位號(hào)碼 用法:=IDCODE(a1) (假設(shè)A1放的是原15位號(hào)碼) 關(guān)于身份證號(hào)碼最后一位的校驗(yàn)碼的算法如下: 我國(guó)現(xiàn)行使用公民身份證號(hào)碼有兩種尊循兩個(gè)國(guó)家標(biāo)準(zhǔn),〖GB 11643-1989〗和〖GB 11643-1999〗?!糋B 11643-1989〗中規(guī)定的是15位身份證號(hào)碼:排列順序從左至右依次為:六位數(shù)字地址碼,六位數(shù)字出生日期碼,三位數(shù)字順序碼,其中出生日期碼不包含世紀(jì)數(shù)?!糋B 11643-1999〗中規(guī)定的是18位身份證號(hào)碼:公民身份號(hào)碼是特征組合碼,由十七位數(shù)字本體碼和一位數(shù)字校驗(yàn)碼組成。排列順序從左至右依次為:六位數(shù)字地址碼,八位數(shù)字出生日期碼,三位數(shù)字順序碼和一位數(shù)字校驗(yàn)碼。地址碼表示編碼對(duì)象常住戶口所在縣(市、旗、區(qū))的行政區(qū)劃代碼。生日期碼表示編碼對(duì)象出生的年、月、日,其中年份用四位數(shù)字表示,年、月、日之間不用分隔符。順序碼表示同一地址碼所標(biāo)識(shí)的區(qū)域范圍內(nèi),對(duì)同年、月、日出生的人員編定的順序號(hào)。順序碼的奇數(shù)分給男性,偶數(shù)分給女性。校驗(yàn)碼是根據(jù)前面十七位數(shù)字碼,按照ISO 7064:1983.MOD 11-2校驗(yàn)碼計(jì)算出來(lái)的檢驗(yàn)碼。公式如下:  ∑(a[i]*W[i]) mod 11 ( i = 2, 3, ..., 18 ) (1)   "*" 表示乘號(hào)  i--------表示身份證號(hào)碼每一位的序號(hào),從右至左,最左側(cè)為18,最右側(cè)為1?! [i]-----表示身份證號(hào)碼第 i 位上的號(hào)碼  W[i]-----表示第 i 位上的權(quán)值 W[i] = 2^(i-1) mod 11   計(jì)算公式 (1) 令結(jié)果為 R 根據(jù)下表找出 R 對(duì)應(yīng)的校驗(yàn)碼即為要求身份證號(hào)碼的校驗(yàn)碼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,羅馬數(shù)字中的 10 就是X,所以在新標(biāo)準(zhǔn)的身份證號(hào)碼中可能含有非數(shù)字的字母X。 有如下方法,各位自己研究一下. 方法一: private string getNewId(string id) { int num=0; string newid,code; newid = id; newid = newid.Substring(0,6)+ "19" + newid.Substring(6); //計(jì)算校驗(yàn)位 for(int i = 18; i>=2;i--) { num = (int)(num + (System.Math.Pow(2,(i - 1)) % 11) * Convert.ToInt32(newid.Substring(18 - i, 1))); } num = num % 11; switch(num) { case 0 : code = "1"; break; case 1 : code = "0"; break; case 2 : code = "X"; break; default: int te = 12 -num; code = te.ToString(); break; } newid = newid + code; return newid; } 方法二: private string getNewId2(string id) { int[] W ={ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 }; string[] A ={ "1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2" }; int j = 0; int s = 0; string newid, code; newid = id; newid = newid.Substring(0, 6) + "19" + newid.Substring(6); //計(jì)算校驗(yàn)位 for (int i = 0; i < newid.Length; i++) { j = Convert.ToInt32(newid.Substring(i, 1)) * W[i]; s = s + j; } s = s % 11; newid = newid + A[s]; return newid; } 方法三: private string getCheckCode(string sfzh) { char[] strJiaoYan = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' }; int[] intQuan = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 }; string strTemp; int intTemp = 0; strTemp = sfzh.Substring(0, 6) + "19" + sfzh.Substring(6); for (int i = 0; i <= strTemp.Length - 1; i++) { intTemp += int.Parse(strTemp.Substring(i, 1)) * intQuan[i]; } intTemp = intTemp % 11; return strTemp + strJiaoYan[intTemp]; }

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多