身份证号码解释,附:18位公民身份证编码规则

身份证号码解释,附:18位公民身份证编码规则

身份证号码由18位数字组成,你知道它们代表的信息吗?

其中的第一、第二数字表示公民所在地的省份(或自治区、直辖市);第三、第四位数字表示公民所在地的市(或州);第五、第六位数字表示公民所在地的县(或县级市);接下来的8位数字表示公民的出生年、月、日;最后4位数字中的前两位表示当地派出所的编码;倒数第二位表示公民是男性还是女性(男性用单数,女性用双数);最后一位数字是一个随机数,又称为校验码。

大陆的身份证为18位,老的身份证是15位。

关于身份证第18是怎么计算的,原理如下

根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

地址码(身份证前六位)表示编码对象常住户口所在县(市、旗、区)的行政区划代码。(所有区域的编码可以到这个网址http://xzqh.mca.gov.cn查询到最新的县及县以上的行政编码资料。)

生日期码(身份证第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。

顺序码(身份证第十五位到十七位)为同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位奇数分给男性,偶数分给女性。

校验码(身份证最后一位)是根据前面十七位数字码,按照ISO7064:1983.MOD11-2校验码计算出来的检验码。

第十八位数字的计算方法

1.将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7910584216379105842

2.将这17位数字和系数相乘的结果相加。

3.用加出来和除以11,看余数是多少?

4.余数只可能有012345678910这11个数字。其分别对应的最后一位身份证的号码为10X98765432。

5.通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。

例如:某男性的身份证号码是34052419800101001X。我们要看看这个身份证是不是合法的身份证。

首先:我们得出,前17位的乘积和是189

然后:用189除以11得出的结果是17+2/11,也就是说余数是2。

最后:通过对应规则就可以知道余数2对应的数字是X。所以,这是一个合格的身份证号码。


附:18位公民身份证编码规则

18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确规定。GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。其含义如下:

1.地址码:表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。

2.出生日期码:表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位、2位数字表示,之间不用分隔符。

3.顺序码:表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。

校验的计算方式:

1.对前17位数字本体码加权求和

公式为:S=Sum(Ai*Wi),i=0,…,16

其中Ai表示第i位置上的身份证号码数字值,Wi表示第i位置上的加权因子,其各位对应的值依次为:7910584216379105842

2.以11对计算结果取模

Y=mod(S,11)

3.根据模的值得到对应的校验码

对应关系为:

Y值:012345678910

校验码:10X98765432

关于18位身份证号码尾数是“X”的解释

居民身份证的号码是按照国家的标准编制的,由18位组成:前六位为行政区划代码,第七至第十四位为出生日期码,第15至17位为顺序码,第18位为校验码。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。X是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。但是我国的居民身份证在升位后,一些人的尾号变成了X,这部分人在工作生活中,例如去银行存取钱、去汽车公司租赁汽车或者报名参加考试等等过程中,往往不被检验者理解,认为是假身份证,这样的误会给很多人的生活带来不便。公安局的同志希望领到X身份证的同志正确理解这个数字的含义,查验身份证的机关和单位更应该清楚这一点。

一个简单身份证号尾号校验算法的PHP实现的过程

<?php
function checkId($id) {
    $len = strlen($id);
    if($len != 18) {
        return 0;
    }
    $a=str_split($id,1);
    $w=array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
    $c=array(1,0,'X',9,8,7,6,5,4,3,2);
    $sum = 0;
    for($i=0;$i<17;$i++){
        $sum= $sum + $a[$i]*$w[$i];
    }
    $r=$sum%11;
    $res=$c[$r];
    //echo "校验位是: ".$res;
    if ($res == $a[17]) {
        return 1;
    } else {
        return 0;
    }
}