搜档网
当前位置:搜档网 › 计算机-身份证校验码

计算机-身份证校验码

计算机-身份证校验码
计算机-身份证校验码

身份证校验码程序编写记录

本文是对我编写身份证校验码小程序时的过程记录。它记录编写程序的整个思考过程。这对我来说是一段美好的回忆。同时,也希望对有过类似经历,或是准备着将要做类似经历朋友们,带来温馨的回忆。

身份证第18位是校验码,采用ISO 7064:1983, MOD 11-2校验字符系统,计算规则如下:

∑(a i ×W i )18

i=1

≡1 (mod 11)

? i 表示号码字符从右至左包括校验码字符在内的位置序号。

? a i 表示第i 位置上的号码字符值,a 1是身份证号码第18位校验码。

? W i 表示第i 位置上的加权因子,加权因子计算公式:W i =2i?1 (mod 11)。

? 当a i 值等于10时,用罗马数字符X 表示。 规则分析:

? 规则包涵校验码,考虑校验位的加权因子是1可得到:

a 1+∑(a i ×W i )18i=2≡1 (mod 11)

考虑同余的定理,可以进一步得到:

a 1=12?∑(a i ×W i )18i=2 (mod 11)

?同样根据同余的定理,加权因子可以用根据他前一位的加权因子得到,这样在计算机循环时更方便:

W i=W i?1×2 (mod 11)

经过以上的分析,我们可以得到以下算法(用JavaScript实现的):

//生成身份证校验码,输入身份证前17位字符串

function id18_checked(str){

var tol=0; //身份证位与加权因子之和

var mo=1; //存放各位的加权因子

for(i=16;i>=0;i--){

mo=(mo * 2 )%11; //计算当前位的加权因子

tol+=parseInt(str.substr(i,1)*mo); //计算和

}

tol=(12-tol%11); //计算校验码

if(tol==10)tol='X'; // 校验码为10时,转为大写‘X’。

return tol.toString();

}

上面关于身份证校验的小程序就完成了。如果还想要进一步变化,在网上看到大都是将加权因子先算出来(可在网上直接找到),将加权因子做为一个数组,直接写入程序。在计算校验最后一步是,也是使用一个数组做对照表。

我是喜欢这种与数学结合比较紧密的算法。总是感到只有这样才能体验到一种乐趣。当乐趣变为工作后,这样的快乐体验就会少很多。即没有时间去做数学的详细分析,也没有时间去细细体验。不知你们也有这种感觉。

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), "正确","错误"))

通过excel公共函数计算二代公民身份证号码末位校验码

通过excel公共函数计算二代公民身份证号码末位校验码/验证码(附公式可直接使用) 闲来无事,用EXCEL写了个公式(本文最后),可以根据身份证号码前17位计算第18位校验码的,经过验证,非常有效。 使用这个公式可以自己随意编造可以通过验证的身份证号码(感觉在为办证的做贡献。。。) 18位身份证号码的结构: 现在的二代身份证由18位数字组成 1、前6位是行政区规划代码,第一位是区位号(如西北、西南),第二位为省份编号,第三、四位是城市编号,第五、六位是县区编号,01-19代表市辖区,20以后代表郊县、县级市等辖区。 具体的行政区域规划码可以可以在国家统计局网站查询: https://www.sodocs.net/doc/ba18003582.html,/tjbz/xzqhdm/t20021125_46781.htm 2、第7-14位是出生年月日,格式是yyyymmdd; 3、第15-17位是顺序码,即同一地区相同生日的人的顺序编码,随便写; 4、第18位是根据GB 11643-1999和IOS 7064计算出的校验码,计算方式比较复杂,文章中的公式就是用来计算这个校验码的! 下图是完整的身份证效验码计算方式: 但是因为上图中的公式太多,不方便直接使用,所以我把上图中所有的公式整合到了一个单元格中,就是下面的超级公式~! 现在,打开excel,先将A1单元格属性设置为文本,再把你准备好的1-17位身份证号码填入A1单元格,然后把公式拷到随便哪个单元格中,完整的身份证号码就计算出来了!还可以用下拉的方式同时计算多个号码,很省事吧!

公式如下: =IF((LEN(A1))=17,(A1&IF(VALUE(MOD((SUM((MID(A1,1,1))*7,(MID(A1,2,1)) *9,(MID(A1,3,1))*10,(MID(A1,4,1))*5,(MID(A1,5,1))*8,(MID(A1,6,1))*4, (MID(A1,7,1))*2,(MID(A1,8,1))*1,(MID(A1,9,1))*6,(MID(A1,10,1))*3,(MI D(A1,11,1))*7,(MID(A1,12,1))*9,(MID(A1,13,1))*10,(MID(A1,14,1))*5,(M ID(A1,15,1))*8,(MID(A1,16,1))*4,(MID(A1,17,1))*2)),11))=0,1,(IF(VALU E(MOD((SUM((MID(A1,1,1))*7,(MID(A1,2,1))*9,(MID(A1,3,1))*10,(MID(A1, 4,1))*5,(MID(A1,5,1))*8,(MID(A1,6,1))*4,(MID(A1,7,1))*2,(MID(A1,8,1) )*1,(MID(A1,9,1))*6,(MID(A1,10,1))*3,(MID(A1,11,1))*7,(MID(A1,12,1)) *9,(MID(A1,13,1))*10,(MID(A1,14,1))*5,(MID(A1,15,1))*8,(MID(A1,16,1) )*4,(MID(A1,17,1))*2)),11))=1,0,(IF(VALUE(MOD((SUM((MID(A1,1,1))*7,( MID(A1,2,1))*9,(MID(A1,3,1))*10,(MID(A1,4,1))*5,(MID(A1,5,1))*8,(MID (A1,6,1))*4,(MID(A1,7,1))*2,(MID(A1,8,1))*1,(MID(A1,9,1))*6,(MID(A1, 10,1))*3,(MID(A1,11,1))*7,(MID(A1,12,1))*9,(MID(A1,13,1))*10,(MID(A1 ,14,1))*5,(MID(A1,15,1))*8,(MID(A1,16,1))*4,(MID(A1,17,1))*2)),11))= 2,"X",12-VALUE(MOD((SUM((MID(A1,1,1))*7,(MID(A1,2,1))*9,(MID(A1,3,1) )*10,(MID(A1,4,1))*5,(MID(A1,5,1))*8,(MID(A1,6,1))*4,(MID(A1,7,1))*2 ,(MID(A1,8,1))*1,(MID(A1,9,1))*6,(MID(A1,10,1))*3,(MID(A1,11,1))*7,( MID(A1,12,1))*9,(MID(A1,13,1))*10,(MID(A1,14,1))*5,(MID(A1,15,1))*8, (MID(A1,16,1))*4,(MID(A1,17,1))*2)),11)))))))),"输入长度不等于17位!")

身份证号直接出生日公式

根据身份证出年龄,性别,生日 EXCEL中如何从身份证号码求出生年月日及年龄公式,性别信息方法? 注:今天帮助一位网友处理一些表格的问题,也使自己重新又温习了一下电子表格的相关内容,在解决这个问题的过程中,借鉴了一位网友的文章,感觉里面的信息非常全面,可能许多朋友都有可能遇到,特转载到自己的博客当中。也对这位网友表示感谢。 excel中如何根据身份证号,自动求出出生年月? 很好用!根据我的实际工作需要,又少作修改的方法:假如身份证号数据在A1单元格,在B1单元格中编辑公式 =IF(LEN(A1)=15,"19"&MID(A1,7,2)&MID(A1,9,2)&MID(A1,11,2),MID(A1,7,4)&MID(A1,11,2)&MID (A1,13,2))这样输出格式就都是19821010这种格式了。 excel中如何根据身份证号,自动求出性别? 假定身份证号在A1单元格,则在B1单元格中编辑公式 =IF(AND(LEN(A1)=15,MOD(MID(A1,15,1)*1,2)=1),"男", IF(AND(LEN(A1)=18,MOD(MID(A1,17,1)*1,2)=1),"男","女")) 在excel是根据身份证自动填充年龄? 假设A列从A1开始是身份证号,在B列中进行转换,则在B1中输入 =YEAR(TODAY())-IF(LEN(A1)=15,"19"&MID(A1,7,2),MID(A1,7,4)),然后再向下复制即可。公式解析:分析身份证号码 其实,身份证号码与一个人的性别、出生年月、籍贯等信息是紧密相连的,无论是15位还是18位的身份证号码,其中都保存了相关的个人信息。 15位身份证号码:第7、8位为出生年份(两位数),第9、10位为出生月份,第11、12位代表出生日期,第15位代表性别,奇数为男,偶数为女。 18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期,第17位代表性别,奇数为男,偶数为女。 例如,某员工的身份证号码(15位)是320521*********,那么表示1972年8月7日出生,性别为女。如果能想办法从这些身份证号码中将上述个人信息提取出来,不仅快速简便,而且不容易出错,核对时也只需要对身份证号码进行检查,肯定可以大大提高工作效率。二、提取个人信息 这里,我们需要使用IF、LEN、MOD、 MID、DATE等函数从身份证号码中提取个人信息。如图1所示,其中员工的身份证号码信息已输入完毕(C列),出生年月信息填写在D列,性别信息填写在B列。 1. 提取出生年月信息 由于上交报表时只需要填写出生年月,不需要填写出生日期,因此这里我们只需要关心身份证号码的相应部位即可,即显示为“7208”这样的信息。在D2单元格中输入公式“=IF(LEN(C2)=15,MID(C2,7,4),MID(C2,9,4))”,其中: LEN(C2)=15:检查C2单元格中字符串的字符数目,本例的含义是检查身份证号码的长度是否是15位。 MID(C2,7,4):从C2单元格中字符串的第7位开始提取四位数字,本例中表示提取15位身份证号码的第7、8、9、10位数字。 MID(C2,9,4):从C2单元格中字符串的第9位开始提取四位数字,本例中表示提取18位身份证号码的第9、10、11、12位数字。 IF(LEN(C2)=15,MID(C2,7,4),MID(C2,9,4)):IF是一个逻辑判断函数,表示如果C2单元格是15位,则提取第7位开始的四位数字,如果不是15位则提取自第9位开始的四位数字。

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

身份证号码第十八位效验码的计算方法- godson_h的专栏- CSDN 博客 默认分类2010-04-10 07:56:04 阅读141 评论0 字号:大中小订阅 身份证号码第十八位效验码的计算方法 关于身份证第18是怎么计算的,原理如下:根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。 地址码(身份证前六位)表示编码对象常住户口所在县(市、旗、区)的行政区划代码。(所有区域的编码可以到这个网站https://www.sodocs.net/doc/ba18003582.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。所以,这是一个合格的身份证号码。

身份证校验码的解释

身份证校验码的解释 新居民身份证的号码是按照国家的标准编制的,由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计算最后一位的公式,也就是个校验码而已

上海身份证号码大全

上海身份证号码大全 上海身份证号码按辖区划分 ①上海中心城区 注释:上海九大中心城区的身份证排列是以黄浦区为原点,顺时针旋转一圈来划分的。 ②上海郊区 ③上海郊县 身份证补注: 310102 上海市黄浦区(原南市区) 310111 上海市宝山区(原吴淞区)

310119 上海市南汇区(并入浦东新区) 310220 (原上海市) 310221 上海市闵行区(原上海县) 310222 上海市嘉定区(原嘉定县) 310223 上海市宝山区(原宝山县) 310224 上海市浦东新区(原川沙县) 310225 上海市南汇区(原南汇县) 310226 上海市奉贤区(原奉贤县) 310227 上海市松江区(原松江县) 310228 上海市金山区(原金山县) 310229 上海市青浦区(原青浦县) 以上补充号码尚有,究其原因是由于上海多次经济规划和行政规划(如并区和撤区,区域资源整合等),从而造成了上海各区居民身份证号码现在不连续的现象。等过些年崇明县变区后,又会出现新的身份证开头号码。 现各区身份证号码不连续的历史原因 历史发展 鸦片战争后上海开埠,外国的船只从外洋直溯而上,1845年英国殖民者首先在上海县境域划定英租界;1849年,法国殖民者也要求划定法租界;1863年,美租界与英租界合并成立公共租界。至此,上海市区划分为不同的管辖区,租界以南的华界被称为南市,同时,苏州河以北老闸(宋代建)和新闸(清代建)一带因大量贫苦农民的流入,逐渐兴起,形成北市。1910年清政府颁发《城乡自治章程》,上海县合城南境、老闸、新闸、江境庙区域为上海城;另设蒲松镇、东泾镇及12乡。1914年,上海改城为市,蒲松镇也改为蒲松市,另设闸北市、洋泾市,合称19市乡。1926年孙传芳督江苏省,成立淞沪商埠,分全境为上海、闸北、浦东、沪西以及吴淞5区。

身份证号码校验实例

身份证号码校验实例 身份证号码是按照一定规律编制的,是个人身份的有效证明,每个人只有一个号码,且不会重复,因而被各单位各部门广泛应用在相关名册中。在大量的身份证号码录入过程中,由于抄写或录入等原因,可能会弄错了某位数字,如果录错了任何一位数字,计算出来的校验码就不一样。根据这一特点,本函数可以对已录入的大批量身份证号码进行校验,如果校验未通过,则说明你录入的号码中必定是某位数字错了,应及时更正,以保证身份证号码正确有效,如果录入的是第一代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)

Excel中如何正确显示身份证号

Excel中如何正确显示身份证号 对于超过12位的数字(包括12位),Excel会自动以科学记数法显示,看起来不舒服。当我们要把带有身份证号的Word 表格复制到Excel中去,就会遇到这种情况。那么,应该怎样保持身份证号的原貌呢? 一、正确的复制步骤 1.启动Excel,根据Word表格的行列数选择要要复制到的区域(如果对数据格式无要求,也可以全选整个工作表)。 2.在选择区域上单击右键,选择“设置单元格格式”命令。 3.在“设置单元格格式”对话框的“数字”选项卡中选择“文本”,如图1,最后单击“确定”按钮。 4.选择Word文档中的表格,执行复制操作。 5.切换到Excel,保持设置区域的选中状态(或单击选中此区域左上角的第一个单元格),然后可选用下面的两种方法之一。 (1)执行“编辑”→“选择性粘贴”,在对话框中选择“文本”,最后单击“确定”按钮。 (2)也可以执行粘贴,然后单击粘贴对象右下角出现的“粘、贴选项”,选择“匹配目标格式”项。

如此操作可以保证身份证号以文本的形式出现。二、15位身份证号的恢复 在Excel中,输入12-15位数字时,虽然会以科学记数的形式出现,但其数值大小是不变的。当今的身份证号码有15位和18位之分。如果15位身份证号以科学记数的形式出现,可以通过设置显示出身份证号的“本相”。 可在“单元格格式”对话框的“数字”选项卡中进行设置。 方法一:选择“分类”中的“数值”,将小数位数由默认的“2”位改为“0”位,单击“确定”按钮。如果本来即是“0”位,直接单击“确定”按钮即可。 方法二:选择“分类”中的“分数”,再选择任意一种分数类型,单击“确定”按钮。 方法三:选择“分类”中的“文本”,单击“确定”按钮,再双击单元格才能转变。 方法四:选择“分类”中的“特殊”,再选择“类型”中的“邮政编码”,单击“确定”按钮。 方法五:选择“分类”中的“自定义”,然后设为“000000000000000”(或用“?”、“#”代替“0”),单击“确定”按钮。 在Excel中不经设置直接输入或粘贴超过15的数字,系统会自动将超出的数值用“0”替换,例如,直接录入18位

一个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

分析身份证号码

一、分析身份证号码 其实,身份证号码与一个人的性别、出生年月、籍贯等信息是紧密相连的,无论是15位还是18位的身份证号码,其中都保存了相关的个人信息。 15位身份证号码:第7、8位为出生年份(两位数),第9、10位为出生月份,第11、12位代表出生日期,第15位代表性别,奇数为男,偶数为女。 18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期,第17位代表性别,奇数为男,偶数为女。 例如,某员工的身份证号码(15位)是320521*********,那么表示1972年8月7日出生,性别为女。如果能想办法从这些身份证号码中将上述个人信息提取出来,不仅快速简便,而且不容易出错,核对时也只需要对身份证号码进行检查,肯定可以大大提高工作效率。 二、提取个人信息 这里,我们需要使用IF、LEN、MOD、 MID、DATE等函数从身份证号码中提取个人信息。如图1所示,其中员工的身份证号码信息已输入完毕(C列),出生年月信息填写在D列,性别信息填写在B列。 1. 提取出生年月信息 由于上交报表时只需要填写出生年月,不需要填写出生日期,因此这里我们只需要关心身份证号码的相应部位即可,即显示为“7208”这样的信息。在D2单元格中输入公式 “=IF(LEN(C2)=15,MID(C2,7,4),MID(C2,9,4))”,其中: LEN(C2)=15:检查C2单元格中字符串的字符数目,本例的含义是检查身份证号码的长度是否是15位。 MID(C2,7,4):从C2单元格中字符串的第7位开始提取四位数字,本例中表示提取15位身份证号码的第7、8、9、10位数字。 MID(C2,9,4):从C2单元格中字符串的第9位开始提取四位数字,本例中表示提取18位身份证号码的第9、10、11、12位数字。 IF(LEN(C2)=15,MID(C2,7,4),MID(C2,9,4)):IF是一个逻辑判断函数,表示如果C2单元格是15位,则提取第7位开始的四位数字,如果不是15位则提取自第9位开始的四位数字。 如果需要显示为“70年12月”这样的格式,请使用DATE格式,并在“单元格格式→日期”中进行

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:市辖区、郊区、郊县、县级市代码

身份证号码函数

用vlookup函数,及其他各项功能,通过身份证号得出了出生日期、性别、户籍所在地等多项信息,并加入了身份证号正确性验证机制和15位、18位号码的转换功能。 详细制作步骤 要想了解身份证的秘密,首先让我们了解一下我国现行的公民身份证标准。 1.我国现行使用公民身份证号码有两种标准。 2.15位身份证号码(六位数字地址码,六位数字出生日期码,三位数字顺序码)。 3.18位身份证号码(六位数字地址码,八位数字出生日期码,三位数字顺序码和 一位数字校验码)。 4. 5.地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。 6.日期码表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、 日之间不用分隔符。 7.顺序码表示同一范围内对同年、月、日出生的人员编定的顺序号。奇数分给男 性,偶数分给女性。 8.校验码是根据前面十七位数字码计算出来的检验码。 复制代码 了解了以上知识后,让我们来制作Excel表。 1.新建一个Excel文档, 2.将Sheet1重命名为“身份证信息”,在第1行各列中依次输入“身份证号码、 十五位身份证号码、十八位身份证号码、性别、出生日期、年龄、省份、市、 区县”等文字,并将“出生日期”列设置为日期(yyyy.mm.dd)格式,其余列 设置为文本格式。 3.将Sheet2重命名为“区域信息”,从国家统计局下载到最新县及县以上行政 区划代码,经整理后分别导入到“区域信息”的A、B两列中,以便查询。 复制代码 到此,Excel表框架搭建完成,我们来写入函数完成查询。 第一步判断号码是否为正确的身份证号 一个正确的身份证号码,要符合以下几个标准: ①应为15位或18位; ②要包含数字(0-9)或字符(X); ③18位身份证号最后一位是真正的校验码。 如果上面三个条件都满足,则是正确的身份证号。 我们利用Excel单元格的“有效性”限制来完成校验。 具体方法是选择“身份证信息”表,全选“身份证号码”列,选择“数据-有效性”菜单命令,在弹出的窗口“设置”标签中,将有效性条件的“允许”设置为“自定义”、“公式”

公民身份证号码证明(精选多篇)-证明范本.doc

公民身份证号码证明精选多篇-证明范本 第一篇:公民身份证号码证明第二篇:公民身份证号码更改证明第三篇:公民身份证号码更正证明第四篇:身份证号码变更证明第五篇:身份证号码证明更多相关范文 正文第一篇:公民身份证号码证明公民身份证号码证明根据我国《中华人民共和国居民身份证法》的规定,公民身份号码是每个公民唯一的、终身不变的身份代码,一般是不允许变动的。如果身份证上的登记项。包括身份证号码,确有错误,公安机关在查证后应当及时更正,换发新证。 所以,您要改身份证号码还是可以改的。您需要准备充分的证明材料来证明您的出生日期和户口本、身份证登记的不一致。 如果公安机关在查证属实后仍不给更改,您可以对其提起行政诉讼或行政复议,要求其及时更正。 相关依据: 《中华人民共和国居民身份证法》 第三条居民身份证登记的项目包括:姓名、性别、民族、出生日期、常住户口所在地住址、公民身份号码、本人相片、证件的有效期和签发机关。

公民身份号码是每个公民唯一的、终身不变的身份代码,由公安机关按照公民身份号码国家标准编制。 第十一条居民身份证有效期满、公民姓名变更或者证件严重损坏不能辨认的,应当申请换领新证;居民身份证登记项目出现错误的,公安机关应当及时更正,换发新证;领取新证时,必须交回原证。居民身份证丢失的,应当申请补领。 未满十六周岁公民的居民身份证有前款情形的,可以申请换领、换发或者补领新证。 公民办理常住户口迁移手续时,公安机关应当在居民身份证的机读项目中记载公民常住户口所在地住址变动的情况,并告知本人。 我在学校的身份证号码是户口簿上面的号码15位,而我现在的身份证号码是18位的新身份证号码。所以学校由于身份证号码不一样需要公民身份证号码更正证明,另我的户口从家里福建转到学校河南,我第一次办理身份证是在家里办理的新一代的18位身份证,然后到转户口到学校又办理了学校的身份证也是18位,请问我开这个公民身份证号码更正证明是去家里派出所还是去学校派出所开?问过家里派出所说户口已经迁出不能办理,而学校派出所说在学校迁户口新办理的身份证和原身份证号码一样。我该去哪开这个证明?

身份证号码校验

Visual C++范例开发大全目录Mylaf 2012-10-23 第1篇VC++入门与基本文档视图 第1章Visual C++ 6.0 MFC程序设计快速入门 2 1.1 Visual C++ 6.0开发环境简介2 1.2 创建Visual C++ 6.0应用程序3 实例001 创建第一个MFC应用程序 3 实例002 创建第一个C++应用程序 4 第2章文档视图应用程序实例6 2.1 窗体操作6 实例003 实现启动时无子窗口的MDI程序 6 实例004 实现MDI应用程序启动时子窗口默认最大化7 实例005 MDI应用程序启动时主窗口默认最大化8 实例006 具有图片背景的MDI主窗口9 实例007 全屏显示的窗体12 实例008 创建带滚动条的窗体15 实例009 窗体拆分16 实例010 始终置顶的SDI程序17 实例011 不可移动的窗体18 实例012 创建不可改变大小的SDI窗口19 实例013 动态设置窗口位置和大小20 实例014 保存窗口状态21 实例015 双击主窗口弹出“打开”对话框23 2.2 标题栏25 实例016 获取标题栏高度25 实例017 获取标题栏上按钮的尺寸26 实例018 定制标题栏文字27 实例019 添加标题栏右键菜单项28 实例020 屏蔽标题栏右键系统菜单及隐藏按钮29 实例021 禁用标题栏上的最大化、最小化和关闭按钮30 实例022 显示和隐藏标题栏31 2.3 菜单32 实例023 获取菜单栏高度32 实例024 启用和禁用菜单33 实例025 动态添加菜单35 实例026 带单选标记的菜单36 实例027 复选标记的菜单38 实例028 带图标菜单的SDI程序39 实例029 带图标菜单的MDI 40 实例030 位图菜单41 实例031 创建客户区右键菜单43 实例032 隐藏和显示菜单栏44 实例033 为应用程序添加多语言支持45 2.4 工具栏48 实例034 工具栏按钮的添加、删除和分组48 实例035 不能停靠的工具栏48 实例036 下压式工具栏按钮49 实例037 给工具栏添加图像背景50 实例038 动态隐藏和显示工具栏51 2.5 状态栏52 实例039 显示和隐藏状态栏52 实例040 带进度条的状态栏53 实例041 在状态栏上加载图像54 实例042 滚动字幕的状态栏56 第3章对话框应用实例58 3.1 对话框界面58 实例043 设置对话框应用程序窗口启动位置58 实例044 半透明对话框59 实例045 创建不规则对话框应用程序60 实例046 拖动没有标题栏的对话框61 实例047 实现收缩对话框应用程序62 实例048 基于对话框的托盘程序64 实例049 为对话框应用程序添加菜单栏66 实例050 带有工具栏的对话框应用程序67 实例051 为对话框应用程序添加右键菜单68 实例052 模式对话框与非模式对话框69 实例053 属性页对话框71 实例054 向导式对话框72 实例055 为对话框应用程序添加启动界面73 实例056 为对话框应用程序添加百叶窗的启动界面76 3.2 通用对话框77 实例057 文件打开对话框78 实例058 在程序启动时弹出文件打开对话框79 实例059 在文件打开对话框中预览图片80 实例060 文件保存对话框81 实例061 选择文件夹对话框82 实例062 字体对话框84 实例063 颜色对话框86 实例064 查找与替换对话框87 第4章控件应用实例89 4.1 常见控件89 实例065 图文按钮89 实例066 具有随机图片背景的EditBox控件90 实例067 使用List Box显示系统逻辑磁盘驱动器列表92 实例068 利用列标题对列表视图进行数据排序93 实例069 使用Static Text控件显示当前系统时间95 实例070 使用Data Time Picker控件调整系统时间96 实例071 使用Combo Box控件控制字体大小97 实例072 使用Rich Edit控件显示文本文件98 实例073 使用Tree Control控件显示文件目录100 实例074 位图进度条102 实例075 使用Progress控件实现文字进度条103 实例076 使用Static Text控件显示当前时间104 实例077 使用Picture Box显示动态打开图像106 实例078 使用Group Box控件对控件分组107 实例079 使用Check Box实现多选109 实例080 使用Radio Button实现单选110 实例081 HorizontalScrollBar,VerticalScrollBar滚动条111

【推荐】有效身份证号码大全word版本 (6页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除! == 本文为word格式,下载后可方便编辑和修改! == 有效身份证号码大全 篇一:上海身份证号码大全 上海身份证号码大全 上海身份证号码按辖区划分 ①上海中心城区 注释:上海九大中心城区的身份证排列是以黄浦区为原点,顺时针旋转一圈来划分的。②上海郊区 ③上海郊县 身份证补注: 310102 上海市黄浦区(原南市区) 310111 上海市宝山区(原吴淞区) 310119 上海市南汇区(并入浦东新区) 310220 (原上海市) 310221 上海市闵行区(原上海县) 310222 上海市嘉定区(原嘉定县) 310223 上海市宝山区(原宝山县) 310224 上海市浦东新区(原川沙县) 310225 上海市南汇区(原南汇县) 310226 上海市奉贤区(原奉贤县) 310227 上海市松江区(原松江县) 310228 上海市金山区(原金山县)

310229 上海市青浦区(原青浦县) 以上补充号码尚有,究其原因是由于上海多次经济规划和行政规划(如并区和 撤区,区域资源整合等),从而造成了上海各区居民身份证号码现在不连续的 现象。等过些年崇明县变区后,又会出现新的身份证开头号码。 现各区身份证号码不连续的历史原因 历史发展 鸦片战争后上海开埠,外国的船只从外洋直溯而上,1845年英国殖民者首先在 上海县境域划定英租界;1849年,法国殖民者也要求划定法租界;1863年, 美租界与英租界合并成立公共租界。至此,上海市区划分为不同的管辖区,租 界以南的华界被称为南市,同时,苏州河以北老闸(宋代建)和新闸(清代建)一带因大量贫苦农民的流入,逐渐兴起,形成北市。1910年清政府颁发《城乡 自治章程》,上海县合城南境、老闸、新闸、江境庙区域为上海城;另设蒲松镇、东泾镇及12乡。1914年,上海改城为市,蒲松镇也改为蒲松市,另设闸 北市、洋泾市,合称19市乡。1926年孙传芳督江苏省,成立淞沪商埠,分全 境为上海、闸北、浦东、沪西以及吴淞5区。 国民政府成立后,根据孙中山的大上海计划,1928年国民政府设立上海特别市,扩大市区范围包括上海、宝山县的一部分,设立17个区,而上海地区各县则 仍属江苏省,从此上海市与上海县分离。1930年又改特别市为市,辖吴淞、引翔、闸北、法华、沪南、塘桥等17个区,全市面积527.5平方公里。城市范 围东达浦东,西至静安寺、徐家汇,南趋龙华,北达宝山路底。 1949年5月上海解放后,成立上海市人民政府,设黄浦、老闸、邑庙、蓬莱、 嵩山、卢湾、常熟、徐汇、长宁、普陀、闸北、静安、新成、江宁、北站、虹口、北四川路、提篮桥、杨浦、榆林等20个区和新市、江湾、吴淞、大场、新泾、龙华、洋泾、真如、高桥等10个郊区。同时,上海的郊县苏南、苏北行署,后由江苏省管辖。1956年经过行政调整,上海市辖区减为18个。1958年,为 了适应城市发展的需要,将江苏所属上海地区的郊县划入上海市,至此,上海 市辖黄浦、邑庙、蓬莱、卢湾、徐汇、长宁、普陀、闸北、新成、江宁、虹口、提篮桥、杨浦、榆林等14个区,浦东、嘉定、宝山、上海、崇明、松江、奉贤、南汇、青浦、川沙和金山等11个县,总面积达6340.5平方公里,比建国初大十倍以上。1960年,撤消邑庙、蓬莱设立南市区;撤消新成、江宁设立静安 区;撤消提篮桥区、榆林区并分别并入虹口、杨浦两区;析上海县置闵行区, 析宝山县置吴淞区,次年又撤消浦东县。1964年,撤消闵行区与吴淞区,此后 上海保持了10个区和10个县不变达10余年之久。文化大革命结束后,1980、81两年,再置吴淞区与闵行区。1988年,撤消吴淞区和宝山县改为宝山区。 1992年,撤消嘉定县,设立嘉定区。为进一步改革开放,1993年撤消川沙县,将其境域与黄浦、杨浦、南市的浦东地区合并设立浦东新区。同年,撤消上海 县和闵行区,合设新的闵行区。20世纪末,松江县、青浦县和金山县也改为区。201X年南市区划入黄浦区。201X年奉贤县和南汇县撤县建区。201X年为了更 好的开发浦东地区,合理配置地区经济与社会资源,综合优化总体布局,促进

身份证编码规则

中国公民身份证编号规则 一、身份证号码执行标准: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位数字根据一定计算得出。 第17位数字是表示在前16位数字完全相同时,某个公民的顺序号,并且单数用于男性,双数用于女性。如果前16位数字均相同的同性别的公民超过5人,则可以“进位”到第16位。比如:有6位女性公民前16位数字均相同,并假设第16位数是7,则这些女性公民的末两位编号分别为72,74,76,78,80,82。另外,还特殊规定,最后三位数为996,997,998,999这4个号码为百岁老人的代码,这4个号码将不再分配给任何派出所。

相关主题