一直对身份证的数字很感兴趣,今天来看看到底表示些什么东西。
310109 19890729 001 0
号码可以分成4个部分
第一部分是地区代码,31是省级代码,01是市级代码,09是区级代码
第二部分是出生代码,1989是年,07是月,29是日
第三部分是顺序号码,根据同年月日出生的顺序来编码,奇数为男,偶数为女
第四部分是校验码位,是科技含量最高的一位,可以有效防止身份证造假,下面来看看是怎么算出来的
把前面17位数字分别乘以权数:3*7+1*9+0*10+1*5+0*8+9*4+1*2+9*1+8*6+9*3+0*7+7*9+2*10+9*5+0*8+0*4+1*2=287
然后用和除以11求余数:287/11=26 1/11,余数为1
余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2
所以我的余数是1,对应的校验位是0,就是说这个身份证号码是真的。
老的15位身份证相比18位少了两位年份代码和校验位,其实原理是差不多的。在想,如果能用口算把校验位算出来,以后出去身份证就可以随便编了,不可有邪念呀,呵呵。
参考文章:
http://www.dbcn.net/article.asp?id=130
http://zhidao.baidu.com/question/1146093.html
2 comments