韓雪濤
我們生活的地方隨處可見數(shù)字編碼,當(dāng)然,和我們最熟悉的,莫過于身份證號碼了。
身份證是每一個公民的重要證件,而我們每個人,從一生下來開始就有了一個身份證號碼,并且這個號碼已成為我們生活中的一部分,1985年我國開始實行居民身份證制度,當(dāng)時簽發(fā)的身份證數(shù)字編號是15位,1999年7月1日實施了新的標(biāo)準(zhǔn),身份證的數(shù)字編號升級為18位,由17位數(shù)字本位碼和1位校驗碼組成。
身份證前6位是地址碼,前1、2位數(shù)字表示所在省份的代碼,第3、4位數(shù)字表示所在城市的代碼、第5、6位數(shù)字表示所在區(qū)縣的代碼。
身份證第7~14位是出生日期碼,表示編碼對象出生的年、月、日,分別用4位、2位、2位數(shù)字表示,例如:2007年5月11日表示為20070511。
身份證第15~17位是順序碼,表示同一地址碼所標(biāo)識的區(qū)域范圍內(nèi),對同年、月、日出生的人員編定的順序號,其中第17位表示性別:奇數(shù)表示男性,偶數(shù)表示女性。
身份證的第18位最有意思,是校驗碼,作為前17位的一種檢驗代碼,校驗碼可用來識別身份證的真?zhèn)危喝绻愀淖兞饲懊婺硞€數(shù)字而后面的校驗碼不相應(yīng)改變,就會被計算機判斷為非法身份證號碼,那么,這位校驗碼是如何得出來的呢?
下面我們就來說明一下它的計算方法,
第一步,將前面17位身份證號分別乘以不同的系數(shù)(可稱為“加權(quán)因子”),其各位對應(yīng)的加權(quán)因子依次為:7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2;
第二步,把得到的17個乘積相加求和(可稱為“加權(quán)和”);
第三步,加權(quán)和除以11,求余數(shù);
第四步,余數(shù)只能取0,1,2,3,4,5,6,7,8,9,10,根據(jù)余數(shù)值與校驗碼的對應(yīng)關(guān)系即可確定出校驗碼,這11個余數(shù)對應(yīng)的校驗碼依次為:1,0,X,9,8,7,6,5,4,3,2,即余數(shù)若為0,則最后的校驗碼取1。余數(shù)若為1,則最后的校驗碼取0。
需要解釋的一點是,校驗碼中出現(xiàn)了一個“X”,X是羅馬數(shù)字的10,為了保證身份證號碼是18位,當(dāng)檢驗碼為“10”時,就用“X”代替了,通過上面提到的對應(yīng)關(guān)系可知,如果前三步得到的余數(shù)是2,也會在身份證的第18位數(shù)字上出現(xiàn)X。
不妨舉一個例子,某男性的身份證號碼是34052419800101001X,我們來看看這個身份證是不是合法的,首先:把前17位數(shù)字分別乘7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,并求和得:3×7+4×9+0×l0+5×5+2×8+4×4+l×2+9×l+8×6+0×3+0×7+l×9+0×l0+l×5+0×8+0×4+l×2=189。
然后用189除以11得余數(shù)是2,最后通過對應(yīng)規(guī)則可以知道,余數(shù)2對應(yīng)的校驗碼是X,所以,這是一個合法的身份證號碼。
顯然,校驗碼的計算過程比較復(fù)雜,是由公安局的計算機根據(jù)上面的算法自動生成的,如果你有興趣,不妨試著計算一下自己身份證號碼最后的校驗碼哦!endprint