搜档网
当前位置:搜档网 › 18位身份证号码编码规则

18位身份证号码编码规则

18位身份证号码编码规则
18位身份证号码编码规则

18位身份证号码编码规则

一、身份证号码执行标准:18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》。

GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。

二、编码规则:公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码,可以用字母表示如为ABCDEFYYYYMMDDXXXR。其含义如下:

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

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

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

4.校验码(R),一位数字,通过前17位数字根据一定计算得出。

三、关于地址码含义的详细解释:

身份证前六位是地区代码,我们用ABCDEF表示。 代码的解释规则如下: A:国内区域

1 华北三省二市

2 东北三省

3 华东六省一市

4 华南六省

5 西南四省一市

6 西北五省

7 台湾

8 港澳

B(或者说是AB,就是前2位):省(直辖市,自治区,特别行政区)代码 按照A划定的分区定义省代码,有直辖市的,直辖市列前,其余按离直辖市的距离排序,没有直辖市的,按离北京的远近排序。

具体省(直辖市,自治区,特别行政区)代码如下:

11-15 京 津冀 晋 蒙

21-23 辽 吉黑

31-37 沪 苏浙 皖 闽 赣 鲁

41-46 豫 鄂湘 粤 桂 琼

50-54 渝 川贵 云 藏

61-65 陕 甘青 宁 新

81-82 港 澳

CD:城市代码

从01开始排,对于直辖市,CD=01表示市辖区,CD=02表示辖县;省的城市

代码从省会开始排,比如2101=沈阳 2102=大连…… 只有地级城市有独立的城市代码,县级市没有。

EF:市辖区、郊区、郊县、县级市代码

如果EF=00,指代这个城市,不特定区县;对于非直辖市,如EF=01,指代市辖区(任意一个区),02开始指代特定的区。

其中:

E=0代表市辖区,

E=1代表郊区,

E=2代表郊县,

E=8代表县级市。

对于直辖市,从01开始就依次排区,没有市区和郊区的代码区分。有关更详细的资料见附录。

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

五、顺序码(XXX)(身份证第十五位到十七位)是县、区级政府所辖派出所的分配码,每个派出所分配码为10个连续号码,例如“000-009”或

“060-069”,其中单数为男性分配码,双数为女性分配码,如遇同年同月同日有两人以上时顺延第二、第三、第四、第五个分配码。如:007的就是个男生,而且和他同年月日生的男生至少有两个,他们的后四位是001*和003*。分配顺序码中“999、998、997、996”四个顺序号分别为男女性百岁以上老人专用的特定编号。

六、关于校验码

校验码是通过一系列数学计算得出来的,具体校验的计算方式如下:

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

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

其中Ai表示第i位置上的身份证号码数字值,Wi表示第i位置上的加权因子,其各位对应的值依次为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 通俗解释:身份证第一位数字X7+第二位X9+第三位X10+第四位X5+第五位X5+第六位X8+第七位X4+第八位X1+第九位X6+第十位X3+十一位X7+十二位X9+十三位X10+十四位X5+十五位X8+十六位X4+十七位X2;计算出总和(用S)表示。

2. 以11对计算结果取模

Y = mod(S, 11)

通俗解释:用S除以11,看最后的余数。如果除尽,为0;余数为1,则计为1;最大余数为10;全部数字为0-10共11个数字。(用Y表示)。

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

对应关系为:

Y

值: 0 1 2 3 4 5 6 7 8 9

10

校验码:

1 0 X 9 8 7 6 5 4 3 2

通俗解释:余数为0,则校验码为1;依次类推:余数为1,则校验码对应0;

以下:2--X;3--9;4--8;5--7;6--6;7--5;8--4;9-3;10-2。

如果校验码不符合这个规则,则肯定是假号码。

身份证号码的编排规则

身份证号码的编排规则 身份证号码中这些数字是怎样排列的,每个数字表示什么意思呢?下面就让我们一起来探索其中的规律吧!新的身份证号码是由18位数字组成的,它们分别表示: (1)前1、2位数字表示:所在省份的代码; (2)第3、4位数字表示:所在城市的代码; (3)第5、6位数字表示:所在区县的代码; (4)第7~14位数字表示:出生年、月、日; (5)第15、16位数字表示:所在地的派出所的代码; (6)第17位数字表示性别:奇数表示男性,偶数表示女性; (7)第18位数字是校检码:也有的说是个人信息码,一般是随计算机的随机产生, 用来检验身份证的正确性。校检码可以是0~9的数字,有时也用x表示。 15位的身份证号 dddddd yymmdd xx p 18位的身份证号 dddddd yyyymmdd xx p y 其中dddddd为地址码(省地县三级)18位中的和15位中的不完全相同yyyymmdd yymmdd 为出生年月日 xx顺号类编码 p性别 18位中末尾的y为校验码,将前17位的ascii码值经位移、异或运算结果不在0-9的令其为x 18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确规定。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。其含义如下: 1. 地址码:表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。 2. 出生日期码:表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位、2位数字表示,之间不用分隔符。 3. 顺序码:表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。

Excel判断身份证号校验码

Excel判断身份证号校验码 假设在一个工作表中:A列是姓名,B列是身份证号码,C列是备注。在B列中输入18位身份证号码后,在C2单元格中输入计算数组公式: =RIGHT(B2,1)=MID("10X98765432",MOD(SUM(MID(B2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1) 然后再将该公式复制给C列其他单元格。 公式的计算结果是一个逻辑值,True表示校验正确,即计算出来的校验码与输入的相同,而False则表示校验错误。值得注意的是,使用校验码进行校验判断为正确的身份证号码未必是正确的,但判断为错误的则肯定是错误的,即通过校验的只是身份证号码正确的必要条件而非充分条件。当然,在实际输入中,身份证号码输入错误而校验正确的情况很少见。在大多数情况下,使用校验码进行校验可以大大提高身份证号码输入的正确性。 RIGHT 根据所指定的字符数返回文本字符串中最后一个或多个字符。 MID 返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。 MOD 返回两数相除的余数。SUM 返回某一单元格区域中所有数字之和。ROW 返回引用的行号。INDIRECT 返回由文本字符串指定的引用。 或者输入数组公式: =IF(LEN(B2)<>18,"错误 ",IF(MID("10X98765432",MOD(SUM(MID(B2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=MID(B2,18,1), "正确","错误"))

中国居民身份证号码编排规则

中国居民身份证号码编排规则 中国居民身份证号码为18位数(在原来15位基础上,年增加两位,最后增加效验码一位),编排规则如下: 一、前六位为行政区划代码(注:中国行政区划代码编排规则); 二、七到十四位为出生年(四位)月(两位)日(两位); 三、十五到十七位为顺序码,其中男性为奇数,女性为偶数; 四、十八位为效验码,效验码计算方法: 1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 2、将这17位数字和系数相乘的结果相加。 3、用加出来和除以11,看余数是多少? 4、余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2。 5、通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。 上一篇:中国行政区划代码编排规则 下一篇:我国电话区号的编排规则 中国行政区划代码编排规则 中国行政区划分省(自治区、直辖市、特别行政区)、市(地区、自治州、盟)、县(自治县、县级市、市辖区、旗、自治旗)三个层次,行政区划代码为六位数。 1、第一、二位表示省(自治区、直辖市、特别行政区) 其中第一位为大区,第二位为区内省 华北1:北京市1、天津市2、河北省3、山西省4、内蒙古自治区5

东北2:辽宁省1、吉林省2、黑龙江省3 华东3:上海市1、江苏省2、浙江省3、安徽省4、福建省5、江西省6、山东省7 华中4:河南省1、湖北省2、湖南省3、广东省4、广西壮族自治区5、海南省6 西南5:重庆市0、四川省1、贵州省2、云南省3、西藏自治区4 西北6:陕西省1、甘肃省2、青海省3、宁夏回族自治区4、新疆维吾尔自治区5 (台湾)7:台湾省1 特别行政区8:香港特别行政区1、澳门特别行政区2 2、第三、四位表示市(区、自治州、盟及国家直辖市所属市辖区和县的汇总码) 01-20,51-70表示省直辖市; 21-50表示地区(自治州、盟) 3、第五、六位表示县(自治县、县级市、市辖区、旗、自治旗); 01-18表示市辖区或地区(自治州、盟)辖县级市; 21-80表示县(旗); 81-99表示省直辖县级市。 最新县及县以上行政区划代码(截止2012年10月31日)110000北京市 110100市辖区 110101东城区 110102西城区 110105朝阳区 110106丰台区 110107石景山区 110108海淀区 110109门头沟区

身份证号码构成

号码构成1 地址码 (身份证号码前六位)表示编码对象常住户口所在县(市、镇、区)的行政区划代码。1-2位省、自治区、直辖市代码;3-4位地级市、盟、自治州代码;5-6位县、县级市、区代码。 2 生日期码 (身份证号码第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。 3 顺序码 (身份证号码第十五位到十七位)地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位奇数分给男性,偶数分给女性。 4 校验码 (身份证号码最后一位)是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且中国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。编辑本段号码含义居民身份证是国家法定的证明公民个人身份的证件。为了堵塞和制止假居民身份证的流通和使用,在查验和核查居民身份证时可掌握以下几个要点: 一、有效期限 居民身份证的有效期限分为10年、20年、长期三种。16周岁至25周岁的,发给有效期为10年的居民身份证;26周岁至45周岁的,发给有效期为20年的居民身份证;46周岁以上的,发给长期有效的居民身份证。证件有效期限从签发之日起计算。如某人1949年9月20日出生,1984年35周岁时申领居民身份证,签发日期为1984年12月31日,他属于26至45周岁这一年龄段,证件有效期限属于20年这一档次,到2004年12月30日有效期满。查验或检查时,应对照检查证件有效期限与持证人年龄,签发日期三者之间的关系。 二、编号识别 1、身份证编码规则如下:根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。地址码(身份证前六位)表示编码对象第一次申领居民身份证时的常住户口所在县(市、旗、区)的行政区划代码。(所有区域的编码可以到网站查询到最新的县及县以上的行政编码资料。)生日期码(身份证第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。顺序码(身份证第十五位到十七位)是县、区级政府所辖派出所的分配码,每个派出所分配码为10个连续号码,例如“000-009”或“060-069”,其中单数为男性分配码,双数为女性分配码,如遇同年同月同日有两人以上时顺延第二、第三、第四、第五个分配码。如:007的就是个男生,而且和他同年月日生的男生至少有两个,他们的后四位是001*和003*。分配顺序码中“999、998、997、996”四个顺序号分别为男女性百岁以上老人专用的特定编号。校验码(身份证最后一位)是根据前面十七位数字码,按照ISO7064:1983.MOD11-2校验码计算出来的检验码。 2、从1999年10月1日起,全国实行公民身份证号码制度,居民身份证编号由原15位升至18位。前6位为地址码;第七位至14位为出生日期码,此码由6位数改为8位数,其中年份用4位数表示;第

身份证号码第十八位效验码的计算方法

身份证号码第十八位效验码的计算方法- godson_h的专栏- CSDN 博客 默认分类2010-04-10 07:56:04 阅读141 评论0 字号:大中小订阅 身份证号码第十八位效验码的计算方法 关于身份证第18是怎么计算的,原理如下:根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。 地址码(身份证前六位)表示编码对象常住户口所在县(市、旗、区)的行政区划代码。(所有区域的编码可以到这个网站https://www.sodocs.net/doc/f95835378.html,/tjbz/index.htm 查询到最新的县及县以上的行政编码资料。) 生日期码(身份证第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。 顺序码(身份证第十五位到十七位)为同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位奇数分给男性,偶数分给女性。 校验码(身份证最后一位)是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。 第十八位数字的计算方法为: 1.将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 2.将这17位数字和系数相乘的结果相加。 3.用加出来和除以11,看余数是多少? 4余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为 1 0 X 9 8 7 6 5 4 3 2。 5.通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。 例如:某男性的身份证号码是340524************。我们要看看这个身份证是不是合法的身份证。 首先:我们得出,前17位的乘积和是189 然后:用189除以11得出的结果是17 + 2/11,也就是说余数是2。 最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。

身份证号码校验实例

身份证号码校验实例 身份证号码是按照一定规律编制的,是个人身份的有效证明,每个人只有一个号码,且不会重复,因而被各单位各部门广泛应用在相关名册中。在大量的身份证号码录入过程中,由于抄写或录入等原因,可能会弄错了某位数字,如果录错了任何一位数字,计算出来的校验码就不一样。根据这一特点,本函数可以对已录入的大批量身份证号码进行校验,如果校验未通过,则说明你录入的号码中必定是某位数字错了,应及时更正,以保证身份证号码正确有效,如果录入的是第一代15位身份证号码,本函数将返回18位号码,使身份证号码保持统一的位数。 代码如下: Function IDcheck(ID) '身份证号码校验函数 Dim s, iAs Integer Dim e, z As String Part1: '----------------------------身份证号码合法性检查--------------------------------------- If Not (Len(ID) = 18 Or Len(ID) = 15) Then '位数检验 IDcheck = "位数错误" Exit Function Else If Len(ID) = 15 Then ID = Left(ID, 6) & "19" & Right(ID, 9)

If IsNumeric(Left(ID, 17)) = False Or InStr(ID, ".") > 0 Then '字符检验 IDcheck = "字符错误" Exit Function End If On Error Resume Next '日期检验 If DateValue(Mid(ID, 7, 4) & "-" & Mid(ID, 11, 2) & "-" & Mid(ID, 13, 2)) < 1 Or _ DateValue(Mid(ID, 7, 4) & "-" & Mid(ID, 11, 2) & "-" & Mid(ID, 13, 2)) > Date Then IDcheck = "日期错误" Exit Function End If End If Part2: '-----------------------------校验码的生成及检查---------------------------------------- s = 0 For i = 1 To 17 s = s + Val(Mid(ID, 18 - i, 1)) * (2 ^ i Mod 11)

身份证编码规则

身份证编码规则 一、编码规则: 根据中华人民共和国国家有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码,可以用字母表示如为ABCDEFYYYYMMDDXXXR。其含义如下: 1. 地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码。 2. 出生日期码(YYYYMMDD):表示编码对象出生的年、月、日,分别用4位、2位(不足两位加0)、2位(不足两位加0)数字表示,之间不用分隔符。 3. 顺序码(XXX):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。 4.校验码(R),一位数字,通过前17位数字根据一定计算得出。 二、关于地址码含义的详细解释: 身份证前六位是地区代码,我们用ABCDEF表示。代码的解释规则如下: A 国内区域: 1 华北三省二市 2 东北三省 3 华东六省一 4 华南六省 5 西南四省一市 6 西北五省 7 台湾 8 港澳 B或者说是AB,就是前2位:省(直辖市,自治区,特别行政区)代码按照A划定的分区定义省代码,有直辖市的,直辖市列前,其余按离直辖市的距离排序,没有直辖市的,按离北京的远近排序。 具体省(直辖市,自治区,特别行政区)代码如下:11-15 京津冀晋21-23 辽吉黑 31-37 沪苏浙皖闽赣鲁 41-46 豫鄂湘粤桂琼50-54 渝川贵云藏 61-65 陕甘青宁新 81-82 港澳 CD城市代码:从01开始排,对于直辖市,CD=01表示市辖区,CD=02表示辖县;省的城市代码从省会开始排,比如2101=沈阳 2102=大连…… 只有地级城市有独立的城市代码,县级市没有。 EF:市辖区、郊区、郊县、县级市代码:如果EF=00,指代这个城市,不特定区县;对于非直辖市,如EF=01,指代市辖区(任意一个区),02开始指代特定的区。其中:E=0代表市辖区 E=1代表郊区 E=2代表郊县 E=8代表县级市对于直辖市,从01开始就依次排区,没有市区和郊区的代码区分。 三、生日期码(YYYYMMDD): 表示编码对象出生的年、月、日,分别用4位、2位(不足两位加0)、2位(不足两位加0)数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。

身份证号码举例

身份证号码举例 身份证整个号码的含义是什么? 18位身份证号码各位的含义: 1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码; 5-6位县、县级市、区代码; 7-14位出生年月日,比如19670401代表1967年4月1日; 15-17位为顺序号,其中17位(倒数第二位)男为单数,女为双数; 18位为校验码,0-9和X。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,计算的结果是0-10,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马 数字的10,用X来代替10。 举例: 130503 19670401 0012这个身份证号的含义: 13为河北,05为邢台,03为桥西区,出生日期为1967年4月1日,顺序号为001,2为校验码。 15位身份证号码各位的含义: 1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码; 5-6位县、县级市、区代码; 7-12位出生年月日,比如670401代表1967年4月1日,这是和18位号码的第一个区别; 13-15位为顺序号,其中15位男为单数,女为双数; 与18位身份证号的第二个区别:没有最后一位的校验码。 举例: 130503 670401 001的含义; 13为河北,05为邢台,03为桥西区,出生日期为1967 年4月1日,顺序号为001。 Excel身份证号码校验实例 身份证号码是按照一定规律编制的,是个人身份的有效证明,每个人只有一个号码,且不会重复,因而被各单位各部门广泛应用在相关名册中。在大量的身份证号码录入过程中,由于抄写或录入等原因,可能会弄错了某位数字,如果录错了任何一位数字,计算出来的校验码就不一样。根据这一特点,本函数可以对已录入的大批量身份证号码进行校验,如果校验未通过,则说明你录入的号码中必定是某位数字错了,应及时更正,以保证身份证号码正确有效,如果录入的是第一代15位身份证号码,本函数将返回18位号码,使身份证号码保持 统一的位数。

第二代身份证编码规则 原理剖析及相关代码

第二代身份证编码规则原理剖析及相 关代码 18身份证号码编码规则一、身份证号码执行标准:18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版, 其中指出将原标准名称"社会保障号码"更名为"公民身份号码",另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。二、编码规则:公民 身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从 左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一 位校验码,可以用字母表示如为ABCDEFYYYYMMDDXXXR。其含义如下:1.地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按 GB/T2260的规定执行。2.出生日期码(YYYYMMDD):表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位(不足两位加0)、 2(同上)位数字表示,之间不用分隔符。3.顺序码(XXX):表示在同一地址码所 标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇 数分配给男性,偶数分配给女性。4.校验码(R),一位数字,通过前17位数字 根据一定计算得出。三、关于地址码含义的详细解释:身份证前六位是地区代码,我们用ABCDEF表示。代码的解释规则如下:A:国内区域1华北三省二市 2东北三省3华东六省一市4华南六省5西南四省一市6西北五省7台湾8港 澳B(或者说是AB,就是前2位):省(直辖市,自治区,特别行政区)代码按照 A划定的分区定义省代码,有直辖市的,直辖市列前,其余按离直辖市的距离 排序,没有直辖市的,按离北京的远近排序。具体省(直辖市,自治区,特别行政区)代码如下:11-15京津冀晋蒙21-23辽吉黑31-37沪苏浙皖闽赣鲁41-46 豫鄂湘粤桂琼50-54渝川贵云藏61-65陕甘青宁新81-82港澳CD:城市代码从01开始排,对于直辖市,CD=01表示市辖区,CD=02表示辖县;省的城市代码 从省会开始排,比如2101=沈阳2102=大连…只有地级城市有独立的城市代码,县级市没有。EF:市辖区、郊区、郊县、县级市代码如果EF=00,指代这个城市,不特定区县;对于非直辖市,如EF=01,指代市辖区(任意一个区),02开 始指代特定的区。其中:E=0代表市辖区,E=1代表郊区,E=2代表郊县,E=8

身份证编码规则

当今的身份证号码有15和18位之分。1985年我国实行居民身份证制度,当时签发的身份证号码是15位的,1999年签发的身份证由于年份的扩展(由两位变为四位)和末尾加了效验码,就成了18位。这两种身份证号码将在相当长的一段时期内共存。两种身份证号码的含义如下: 18位的身份证号码:510104************ (1)1~6位为地区代码,其中1、2位数为各省级政府的代码(四川省为51),3、4位数为地、市级政府的代码(成都市为01),5、6位数为县、区级政府代码(锦江区为04)。 (2)7~10位为出生年份(4位),如1963 (3)11~12位为出生月份,如07 (4)13~14位为出生日期,如17 (5)第15~17位为顺序号,为县、区级政府所辖派出所的分配码,每个派出所分配码位10个连续号码,例如“020—029”,其中单数为男性分配码,双数为女性分配码,如遇同年同月同日有两人以上时顺延第二、第三、第四、第五个分配码。 (4)18位为效验位(识别码),通过复杂公式算出,普遍采用计算机自动生成。 15位的身份证号码: (1)1~6位为地区代码 (2)7~8位为出生年份(2位),9~10位为出生月份,11~12位为出生日期(3)第13~15位为顺序号,并能够判断性别,奇数为男,偶数为女 第一位:代表你在哪个大区。 其中1为华北区,2为东北区,3为华东区,4为中南区,5为西南区,6为西北区。 第二位:代表你所在的省份在你所在大区的排序。身份证号前两位加一起就能看清你所在的省份。 比如在华北大区中,11为北京,12为天津,13为河北,14为山西,15为内蒙。 再比如东北大区中,21为辽宁,22为吉林,23为黑龙江。 第三位和第四位:是你所在城市在你所在省的一个排序。 比如在辽宁省,01为沈阳,02为大连,03为鞍山,04为抚顺,05为本溪,06为丹东,07为锦州,08为营口,09为阜新,10为营口,11为盘锦,12为铁岭,13为朝阳,14为葫芦岛。 第五位:0为市区,1为郊区,2为县,8为县级市。第五位和第六位加一起就能看到你所在的区县。 以锦州为例:02为古塔区,03为凌河区,11为太和区,25为北镇市,26为黑山县,27为

一个18位身份证校验计算函数.docx

-个18位身份证校验计算函数 因需要对15位旧身份证号码进行升位和校验、查询处理,又没有搜索到现成的函数,于是自己写了一个简单的过程,希望能够帮得上需要的朋友。 本函数的功能单一,只能校验第18位号码是否正确或者取得第18位号码,其他功能留给人家自C扩展吧! <% ' Version: 1. 0. 1 'Author: sfply(sfply@163. com) 'Last Modified: 2004/7/17 12:03 'Src是身份证号码,可以是15位也可以是18位,15位时只能返回验证码方式使用 'iChk参数取值真假,真代表校验Six是否18位身份证,并且校验第18位是否 正确号码而确定是否有效身份证,返冋只值为true或false ' 假代表返回止确的校验码,返回值为(l~x) dim myldentify myTdentify 二〃36050219781218133?〃 response .write chkldentiyCard(myldentify, false) Function chkldentiyCard(Src,iChk)

dim myWi, myAi, mySrc(17), i, myCount myAi =,z 10X98765432' myWi = split(z/7, 9, 10, 5, & 4, 2, 1, 6, 3, 7, 9, 10, 5, & 4, 2〃,〃,〃) if iChk then if len (Src) = 18 then for i = 0 to 16 mySrc(i)二mid(Src, i + 1, 1) myCouni 二myCount + mySrc(i) * myWi(i) next if mid(myAi, (mycount mod 11)+1,1) = right (Src,1) then chkldcntiyCard = true '返回结果,TRUE为合法身份证验证码 el se chkldentiyCard = false '返回结果,FALSE为非法身份证验证码 end if else chkldentiyCard = false '因为不是18位身份证所以返[H] FALSE end if el se if len(Src)二15 or len(Src)二18 then if len(Src) = 15 then Src = mid(Src, 1, 6) & "19〃 & mid(Src, 7, 9) for i = 0 to 16 mySrc(i)二mid(Src, i + 1, 1) myCount 二myCount + mySrc(i) * myWi (i) n ext chkldentiyCard = mid (myAi, (mycount mod 11)+1, 1)'返回正确的验证码else chkldentiyCard二false '输入不不是15位或18位身份证号 end if end if Encl Function

net实现中国身份证号码验证源码

.net实现中国身份证号码验证源码 using System; /// /// Summary descr ip tion for IDCardValid /// public cl as s IDCardValid { public IDCardValid() { // // TODO: Add constructor logic here // } /// /// 验证身份证号码 /// /// 身份证号码 /// 验证成功为True,否则为False public static bool CheckIDCard(string Id) { if (Id.Length == 18) { bool check = CheckIDCard18(Id); return check; } else if (Id.Length == 15) { bool check = CheckIDCard15(Id); return check; } else { return false; } } #region 身份证号码验证 /// /// 验证15位身份证号 /// /// 身份证号 /// 验证成功为True,否则为False private static bool CheckIDCard18(string Id) { long n = 0; if (long.TryParse(Id.Remove(17), out n) == false || n < Math.Pow(10, 16) || long.TryParse(Id.Replace('x', '0').Replace('X', '0'), out n) == false) { return false;//数字验证 } string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x6 1x14x32x41x50x62x15x33x42x51x63x21x34x43x52 x64x65x71x81x82x91"; if (address.IndexOf(Id.Remove(2)) == -1) { return false;//省份验证 } string birth = Id.Substring(6, 8).Insert (6, "-").Insert(4, "-"); DateTime time = new DateTime(); if (DateTime.TryParse(birth, out time) == false) { return false;//生日验证 } string[] arrVarifyCode = ("1,0,x,9,8,7,6,5,4,3,2").Split(','); string[] Wi = ("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(','); char[] Ai = Id.Remove(17).ToCharArray(); int sum = 0; for (int i = 0; i < 17; i++) { sum += int.Parse(Wi[i]) * int.Parse(Ai[i].ToString()); } int y = -1; Math.DivRem(sum, 11, out y); if (arrVarifyCode[y] != Id.Substring(17, 1).ToLower()) { return false;//校验码验证 } return true;//符合GB11643-1999标准 } /// /// 验证18位身份证号 /// /// 身份证号 /// 验证成功为True,否则为False private static bool CheckIDCard15(string Id) { long n = 0; if (long.TryParse(Id, out n) == false || n < 1

中华人民共和国身份证号码规则

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位置上的加权因子,其各位对应的值依次为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 2. 以11对计算结果取模 Y = mod(S, 11) 3. 根据模的值得到对应的校验码 对应关系为: Y值:0 1 2 3 4 5 6 7 8 9 10 校验码: 1 0 X 9 8 7 6 5 4 3 2 身份证号码的编排规则 身份证号码中这些数字是怎样排列的,每个数字表示什么意思呢?下面就让我们一起来探索其中的规律吧!新的身份证号码是由18位数字组成的,它们分别表示: (1)前1、2位数字表示:所在省份的代码; (2)第3、4位数字表示:所在城市的代码; (3)第5、6位数字表示:所在区县的代码; (4)第7~14位数字表示:出生年、月、日; (5)第15、16位数字表示:所在地的派出所的代码; (6)第17位数字表示性别:奇数表示男性,偶数表示女性; (7)第18位数字是校检码:也有的说是个人信息码,一般是随计算机的随机产生, 用来检验身份证的正确性。校检码可以是0~9的数字,有时也用x表示。 15位的身份证号 dddddd yymmdd xx p 18位的身份证号 dddddd yyyymmdd xx p y 其中dddddd为地址码(省地县三级)18位中的和15位中的不完全相同 yyyymmdd yymmdd 为出生年月日 xx顺号类编码 p性别 18位中末尾的y为校验码,在网上可以找到算法 将前17位的ascii码值经位移、异或运算结果不在0-9的令其为x 中华人民共和国行政区划代码(GB/T2260—999) 代码省、市名称代码省、市名称 11 北京市 42 湖北省

18位身份证号编制规则

18位身份证号编制规则 一、身份证号码执行标准:18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。 二、编码规则:公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码,可以用字母表示如为ABCDEFYYYYMMDDXXXR。其含义如下: 1. 地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T22 60的规定执行。 2. 出生日期码(YYYYMMDD):表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位(不足两位加0)、2(同上)位数字表示,之间不用分隔符。 3. 顺序码(XXX):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。 4.校验码(R),一位数字,通过前17位数字根据一定计算得出。 三、关于地址码含义的详细解释: 身份证前六位是地区代码,我们用ABCDEF表示。代码的解释规则如下: A:国内区域 1 华北三省二市 2 东北三省 3 华东六省一市

4 华南六省 5 西南四省一市 6 西北五省 7 台湾 8 港澳 B(或者说是AB,就是前2位):省(直辖市,自治区,特别行政区)代码 按照A划定的分区定义省代码,有直辖市的,直辖市列前,其余按离直辖市的距离排序,没有直辖市的,按离北京的远近排序。 具体省(直辖市,自治区,特别行政区)代码如下: 11-15 京津冀晋蒙 21-23 辽吉黑 31-37 沪苏浙皖闽赣鲁 41-46 豫鄂湘粤桂琼 50-54 渝川贵云藏 61-65 陕甘青宁新 81-82 港澳 CD:城市代码 从01开始排,对于直辖市,CD=01表示市辖区,CD=02表示辖县;省的城市代码从省会开始排,比如2101=沈阳2102=大连…… 只有地级城市有独立的城市代码,县级市没有。 EF:市辖区、郊区、郊县、县级市代码

18位身份证号码输入的几种解决方法

18位身份证号码输入的几种解决方法: 1、在A1单元输入号码时,在前面先输入?号,就是:?123456789012345,这样单元格会默认为该单元为文本方式,会完整显示出15个号码来,而不会显示那令人讨厌的科学计数方式来了。 2、如果已经输入了大量的号码,全部以科学计数显示的话,而又懒的按照上面的方法一个一个的重新输入的话,也有这个好方法哦,比如已在单元A1:A100输入了号码,按以下步骤做:》选择单元A1:A100》单击鼠标右键,设置单元格式》选择自定义,在…类型?中输入…0?即可,轻松搞定,呵呵!! 3、还有一种用函数来解决的方法:在A1:A100已经输入大量的号码时,在B1单元中输入:=trim(' 'a1),注意两个?之间是空格,这个公式的意思:先在A1单元15位号码前加个空格符号,然后用trim这个函数把空格符号去掉。输完后,B1单元也是显示出完整的15位数字了。 最佳答案 使WORD里面的文章自动生成目录: 假如文章中标题格式为 第一节……大标题(一级) 1.1……小标题(二级) 1.1.1—……小标题下的小标题(三级) …… 第N节……大标题(一级) n.1……小标题(二级) n.1.1—……小标题下的小标题(三级) 自动生成文章目录的操作: 一、设置标题格式 1.选中文章中的所有一级标题; 2.在“格式”工具栏的左端,“样式”列表中单击“标题1”。 仿照步骤1、2设置二、三级标题格式为标题2、标题3。 二、自动生成目录 1.把光标定位到文章第1页的首行第1个字符左侧(目录应在文章的前面); 2.执行菜单命令“插入/引用/索引和目录”打开“索引的目录”对话框; 3.在对话框中单击“目录”选项卡,进行相关设置后,单击“确定”按钮,文章的目录自动生成完成。 友情提示:

身份证校验码的解释

身份证校验码的解释 新居民身份证的号码是按照国家的标准编制的,由18位组成:前六位为行政区划代码,第七至第十四位为出生日期码,第15至17位为顺序码,第18位为校验码。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。 身份证中第十八位数字的计算方法为: 1.将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2。 2.将这17位数字和系数相乘的结果相加。 3.用加出来和除以11,看余数是多少? 4余数只可能有0 、1、2、3、4、5、6、7、8、9、10这11个数字。其分别对应的最后一位身份证的号码为1、0、X、9、8、7、6、5、4、3、2。 5.通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。 例如:某男性的身份证号码是340524************。我们要看看这个身份证是不是合法的身份证。 首先:我们得出,前17位的乘积和是189 然后:用189除以11得出的结果是17 + 2/11,也就是说余数是2。 最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。

这里面说的很清楚了,最后一位是用来辨别身份证真假的一种办法。而不是同年同月同日生的人的识别码。 贴个JA V A实现的校验算法 public static char doV erify(String id); { char pszSrc[]=id.toCharArray();; int iS = 0; int iW[]={7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; char szVerCode[] = new char[]{'1','0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'}; int i; for(i=0;i<17;i++); { iS += (int);(pszSrc-'0'); * iW; } int iY = iS%11; return szVerCode[iY]; } =IF(LEN(A101)=15,REPLACE(A101,7,,19)&MID("10X98765432",MOD(SUM(MID(REPLAC E(A101,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A101 excel计算最后一位的公式,也就是个校验码而已

身份证的编码规则

身份证编码规则生活常识 一、身份证号码执行标准:18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。 二、编码规则:公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码,可以用字母表示如为ABCDEFYYYYMMDDXXXR。其含义如下: 1. 地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。 2. 出生日期码(YYYYMMDD):表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别 用4位、2位(不足两位加0)、2(同上)位数字表示,之间不用分隔符。 3. 顺序码(XXX):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。 4.校验码(R),一位数字,通过前17位数字根据一定计算得出。 三、关于地址码含义的详细解释: 身份证前六位是地区代码,我们用ABCDEF表示。 代码的解释规则如下:

A:国内区域 1 华北三省二市 2 东北三省 3 华东六省一市 4 华南六省 5 西南四省一市 6 西北五省 7 台湾 8 港澳 B(或者说是AB,就是前2位):省(直辖市,自治区,特别行政区)代码 按照A划定的分区定义省代码,有直辖市的,直辖市列前,其余按离直辖市的距离排序,没有直辖市的,按离北京的远近排序。 具体省(直辖市,自治区,特别行政区)代码如下: 11-15 京 津冀 晋 蒙 21-23 辽 吉黑

相关主题