身份证校验码计算公式

合集下载

18位身份证号码验证公式及标准

18位身份证号码验证公式及标准

18位身份证号码验证工具
计算依据及说明
根据《中华人民共和国国家标准》(GB 11643-1999)规定:
公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。

排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

地址码(1-6位):表示编码对象常住户口所在县(市、旗、区)的行政区划代码
生日码(7-14位):表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。

例如:1981年05月11日就用19810511表示。

顺序码(15-17位):为同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。

其中奇数分给男性,偶数分给女性。

校验码(18位):是根据前面十七位数字码,按照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。

以上算法来源于网络,具体规范见国家相关标准。

Excel判断身份证号校验码

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

身份证验证规则

身份证验证规则

⾝份证验证规则⾝份证解析规则: 1-6位:表⽰⾏政区划的代码。

1、2位,所在省(直辖市,⾃治区)代码; 3、4位,所在地级市(⾃治州)代码; 5、6位,所在区(县,⾃治县,县级市)的代码; 7-14位:表⽰出⽣年、⽉、⽇ 15-16位:所在地派出所代码 17位:性别。

奇数(1、3、5、7、9)男性,偶数(2、4、6、8、0)⼥性 18位:校验位,存在⼗⼀个值:0,1,2,3,4,5,6,7,8,9,X,其值是⽤固定公式根据前⾯⼗七位计算出来的。

18位验证算法如下: 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。

(即余数0对应1,余数1对应0,余数2对应X...) 5、通过上⾯得知如果余数是3,就会在⾝份证的第18位数字上出现的是9。

如果对应的数字是2,⾝份证的最后⼀位号码就是罗马数字x。

例如: 某男性的⾝份证号码为【530102************】,我们看看这个⾝份证是不是合法的⾝份证。

⾸先我们得出前17位的乘积和【(5*7)+(3*9)+(0*10)+(1*5)+(0*8)+(2*4)+(1*2)+(9*1)+(2*6)+(0*3)+(0*7)+(5*9)+(0*10)+(8*5)+(0*8)+(1*4)+ (1*2)】是189。

然后⽤189除以11得出的结果是189/11=17----2,也就是说其余数是2。

最后通过对应规则就可以知道余数2对应的检验码是X。

所以,可以判定这是⼀个正确的⾝份证号码。

身份证校验码的确定计算方法11111

身份证校验码的确定计算方法11111

身份证识别码的确定计算方法大陆的身份证为18位,老的身份证是15位。

眼下人们在换发的新身份证俗称为“二代身份证”或者叫“二代征”,老身份证叫“一代证”。

一代身份证是上世纪80年代中期开始的,是依据《中华人民共和国居民身份证条例》(1985年9月6日第六届全国人民代表大会常务委员会第十二次会议通过1985年9月6日中华人民共和国主席令第二十九号公布1985年9月6日起施行)制作颁发的,采用印刷和照相技术塑封而成,只能视读不能机读,易于伪造,而且无法迅捷有效地对公民进行人、证同一认定,不利于有效打击伪造、变造居民身份证以及利用伪造证件、他人证件进行金融犯罪、流窜作案等违法犯罪活动,严重制约了这一法定证件在证明和识别公民身份方面的作用的正常发挥。

“二代证”是依据《中华人民共和国居民身份证法》(2003年6月第十届全国人大常委会第三次会议通过了《居民身份证法》,于2004年1月1日起施行。

本法自2004年1月1日起施行,《中华人民共和国居民身份证条例》同时废止)制作颁发的。

“二代证”由多层聚酯材料复合而成的单页卡式证件,可以视读,内嵌非接触式IC卡芯片作为“机读”存储器,可以将变动信息(如住址变动)追加写入;芯片使用特定的逻辑加密算法,有利于证件制发、使用中的安全管理,增强防伪功能;芯片和电路线圈在证卡内封装,能够保证证件在各种环境下正常使用,寿命在十年以上;并且具有读写速度快,使用方便,易于保管,以及便于各用证部门使用计算机网络核查等优点。

二代证”主要采用数字防伪和印刷防伪技术。

数字防伪用于机读信息的防伪,是将持证人的照片图象和身份项目内容等数字化后存入芯片。

可以有效起到证件防伪的作用,防止伪造证件或篡改证件机读信息内容。

证件表面的视读防伪,主要是采用高新技术制作的防伪标识和印刷防伪技术,具有一定的防伪功效。

18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确的规定。

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

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

第二代身份证编码规则/原理剖析及相关代码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=大连……只有地级城市有独立的城市代码,县级市没有。

身份证计算公式

身份证计算公式

身份证号码‎15位升1‎8位身‎份证18位‎验证‎‎18位身份‎证标准在国‎家质量技术‎监督局于1‎999年7‎月1日实施‎的GB11‎643-1‎999《公‎民身份号码‎》中做了明‎确的规定。

‎GB11‎643-1‎999《公‎民身份号码‎》为GB1‎1643-‎1989《‎社会保障号‎码》的修订‎版,其中指‎出将原标准‎名称"社会‎保障号码"‎更名为"公‎民身份号码‎",另外G‎B1164‎3-199‎9《公民身‎份号码》从‎实施之日起‎代替GB1‎1643-‎1989。

‎G B116‎43-19‎99《公民‎身份号码》‎主要内容如‎下:一‎、范围‎该标准规定‎了公民身份‎号码的编码‎对象、号码‎的结构和表‎现形式,使‎每个编码对‎象获得一个‎唯一的、不‎变的法定号‎码。

二‎、编码对象‎公民身‎份号码的编‎码对象是具‎有中华人民‎共和国国籍‎的公民。

‎三、号码‎的结构和表‎示形式‎1、号码的‎结构公‎民身份号码‎是特征组合‎码,由十七‎位数字本体‎码和一位校‎验码组成。

‎排列顺序从‎左至右依次‎为:六位数‎字地址码,‎八位数字出‎生日期码,‎三位数字顺‎序码和一位‎数字校验码‎。

2、‎地址码‎表示编码对‎象常住户口‎所在县(市‎、旗、区)‎的行政区划‎代码,按G‎B/T22‎60的规定‎执行。

‎3、出生日‎期码表‎示编码对象‎出生的年、‎月、日,按‎G B/T7‎408的规‎定执行,年‎、月、日代‎码之间不用‎分隔符。

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

5、‎校验码‎(1)十七‎位数字本体‎码加权求和‎公式S‎= Su‎m(Ai ‎* Wi)‎, i =‎0, .‎.. , ‎16 ,先‎对前17位‎数字的权求‎和Ai‎:表示第i‎位置上的身‎份证号码数‎字值W‎i:表示第‎i位置上的‎加权因子‎Wi: ‎7 9 1‎0 5 8‎4 2 ‎1 6 3‎7 9 ‎10 5 ‎8 4 2‎(2)‎计算模‎Y = m‎o d(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四、‎举例如下:‎北京市‎朝阳区: ‎11010‎51949‎12310‎02X‎广东省汕头‎市: 44‎05241‎88001‎01001‎4‎15位升1‎8的方法‎根据〖中华‎人民共和国‎国家标准‎G B 11‎643-1‎999〗中‎有关公民身‎份号码的规‎定,公民身‎份号码是特‎征组合码,‎由十七位数‎字本体码和‎一位数字校‎验码组成。

身份证数字校验码计算公式

身份证数字校验码计算公式

身份证数字校验码计算公式在中国,每个人的身份证号码都是唯一的,其中包括了个人的基本信息和校验码。

校验码是身份证号码中的最后一位数字,它是根据身份证号码的前17位数字计算而得到的。

校验码的存在可以帮助验证身份证号码的有效性,防止错误或伪造的身份证号码的使用。

那么,身份证数字校验码是如何计算的呢?首先,我们需要了解身份证号码的结构。

中国的身份证号码共有18位数字,其中前17位是个人的基本信息,包括地区、出生年月日和顺序码,最后一位是校验码。

校验码的计算是通过对前17位数字进行一系列的运算得到的。

校验码的计算公式如下:1. 将身份证号码的前17位数字分别乘以对应的加权因子,然后将乘积相加。

2. 将上一步得到的结果除以11,得到余数。

3. 根据余数在一个预先设定的对照表中找到对应的校验码。

下面我们来详细解释一下这个计算公式。

首先,加权因子是一个固定的数组,分别为,7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2。

这些数字分别对应身份证号码的前17位数字,用来进行加权计算。

接下来,我们将身份证号码的前17位数字分别乘以对应的加权因子,然后将乘积相加。

假设一个身份证号码的前17位数字分别为a1、a2、a3...a17,对应的加权因子分别为w1、w2、w3...w17,那么校验码的计算公式可以表示为:S = a1w1 + a2w2 + a3w3 + ... + a17w17。

其中S表示加权计算的结果。

然后,我们将S除以11,得到余数M。

余数M的取值范围为0到10。

最后,我们根据余数M在一个对照表中找到对应的校验码。

对照表如下:0,1。

1,0。

2,X。

3,9。

4,8。

5,7。

6,6。

7,5。

8,4。

9,3。

10,2。

根据上述对照表,我们可以找到对应余数M的校验码。

通过以上的计算公式,我们可以得到身份证号码的校验码。

这个计算过程可以帮助我们验证身份证号码的有效性,防止错误或伪造的身份证号码的使用。

18位身份证号码校验位规则

18位身份证号码校验位规则

18位⾝份证号码校验位规则根据〖中华⼈民共和国国家标准 GB 11643-1999〗中有关公民⾝份号码的规定,公民⾝份号码是特征组合码,由⼗七位数字本体码和⼀位数字校验码组成。

排列顺序从左⾄右依次为:六位数字地址码,⼋位数字出⽣⽇期码,三位数字顺序码和⼀位数字校验码。

地址码表⽰编码对象常住户⼝所在县(市、旗、区)的⾏政区划代码。

⽣⽇期码表⽰编码对象出⽣的年、⽉、⽇,其中年份⽤四位数字表⽰,年、⽉、⽇之间不⽤分隔符。

顺序码表⽰同⼀地址码所标识的区域范围内,对同年、⽉、⽇出⽣的⼈员编定的顺序号。

顺序码的奇数分给男性,偶数分给⼥性。

校验码是根据前⾯⼗七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。

下⾯举例说明该计算⽅法。

15位的⾝份证编码⾸先把出⽣年扩展为4位,简单的就是增加⼀个19,但是这对于1900年出⽣的⼈不使⽤(这样的寿星不多了)某男性公民⾝份号码本体码为34052419800101001,⾸先按照公式⑴计算:∑(ai×Wi)(mod 11) (1)公式(1)中:i----表⽰号码字符从右⾄左包括校验码在内的位置序号;ai----表⽰第i位置上的号码字符值;Wi----⽰第i位置上的加权因⼦,其数值依据公式Wi=2(n-1)(mod 11)计算得出。

i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1ai 3 4 0 5 2 4 1 9 8 0 0 1 0 1 0 0 1 a1Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1ai×Wi 21 36 0 25 16 16 2 9 48 0 0 9 0 5 0 0 2 a1根据公式(1)进⾏计算:∑(ai×Wi) =(21+36+0+25+16+16+2+9+48++0+0+9+0+5+0+0+2) = 189189 ÷ 11 = 17 + 2/11∑(ai×Wi)(mod 11) = 2然后根据计算的结果,从下⾯的表中查出相应的校验码,其中X表⽰计算结果为10:∑(ai×WI)(mod 11) 0 1 2 3 4 5 6 7 8 9 10校验码字符值ai 1 0 X 9 8 7 6 5 4 3 2根据上表,查出计算结果为2的校验码为所以该⼈员的公民⾝份号码应该为 340524************。

身份证校验算法

身份证校验算法

下面介绍算法:
计算公式令结果为 Y,Y的计算公式为:Y = mod(S, 11)根据下表找出 Y 对应的校验码即为要求身份证号码的校验码C。
例如:假设某女性居民的15位身份证号码是320105820927512,32表示江苏省,01表示南京市,05表示鼓楼区,820927表示1982年9月27日。512表示是该地区同年同月同日的第512人,其中2表示是女性。那么,升级为18位后的号码为32010519820927512C。下面就根据公式来计算C的值。
根据《中华人民共和国国家标准GB 11643-1999》中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。顺序码的奇数分给男性,偶数分给女性。校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
String[] w = {"1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"};
for (int i=0; i<17; i++) {
int ai = Integer.parseInt(arrIdCard.substring(i,i+1));
具体实现代码如下(JAVA):
public boolean isIdCard(String arrIdCard) {
int sigma = 0;

身份证正确检验及验证公式

身份证正确检验及验证公式

考据公式一=IF(LEN(H20)=18,IF(RIGHT(H20,1)="X",IF(CHOOSE(MOD(SUM(LEFT(RIGHT(H20,18) )*7 LEFT(RIGHT(H20,17))*9 LEFT(RIGHT(H20,16))*10 LEFT(RIGHT(H20,15))*5LEFT(RIGHT(H20,14))*8 LEFT(RIGHT(H20,13))*4 LEFT(RIGHT(H20,12))*2LEFT(RIGHT(H20,11))*1 LEFT(RIGHT(H20,10))*6 LEFT(RIGHT(H20,9))*3LEFT(RIGHT(H20,8))*7 LEFT(RIGHT(H20,7))*9 LEFT(RIGHT(H20,6))*10LEFT(RIGHT(H20,5))*5 LEFT(RIGHT(H20,4))*8 LEFT(RIGHT(H20,3))*4LEFT(RIGHT(H20,2))*2),11)1,1,0,"X",9,8,7,6,5,4,3,2)=LEFT(RIGHT(H20,1))," 正确! "," 出错啦!"),IF(CHOOSE(MOD(SUM(LEFT(RIGHT(H20,18))*7 LEFT(RIGHT(H20,17))*9LEFT(RIGHT(H20,16))*10 LEFT(RIGHT(H20,15))*5 LEFT(RIGHT(H20,14))*8LEFT(RIGHT(H20,13))*4 LEFT(RIGHT(H20,12))*2 LEFT(RIGHT(H20,11))*1LEFT(RIGHT(H20,10))*6 LEFT(RIGHT(H20,9))*3 LEFT(RIGHT(H20,8))*7LEFT(RIGHT(H20,7))*9 LEFT(RIGHT(H20,6))*10 LEFT(RIGHT(H20,5))*5LEFT(RIGHT(H20,4))*8 LEFT(RIGHT(H20,3))*4 LEFT(RIGHT(H20,2))*2),11)1,1,0,"X",9,8,7,6,5,4,3,2)=LEFT(RIGHT(H20,1))*1," 正确! "," 出错啦!")),IF(LEN(H20)=15," 老号,请注意! ",IF(LEN(H20)=0," 缺号码 "," 位数不对! ")))考据公式二=MID("10X98765432",MOD(SUMPRODUCT(MID(H20,ROW(INDIRECT("1:17")),1)*2^(18 -ROW(INDIRECT("1:17")))),11) 1,1)=RIGHT(H20,1)身份证有 15 位和 18 位两种,身份证位数可否正确,我们能够用LEN函数判断。

身份证正确检验及验证公式

身份证正确检验及验证公式

验证公式一=IF(LEN(H20)=18,IF(RIGHT(H20,1)="X",IF(CHOOSE(MOD(SUM(LEFT(RIGHT(H20,18) )*7 LEFT(RIGHT(H20,17))*9 LEFT(RIGHT(H20,16))*10 LEFT(RIGHT(H20,15))*5 LEFT(RIGHT(H20,14))*8 LEFT(RIGHT(H20,13))*4 LEFT(RIGHT(H20,12))*2LEFT(RIGHT(H20,11))*1 LEFT(RIGHT(H20,10))*6 LEFT(RIGHT(H20,9))*3LEFT(RIGHT(H20,8))*7 LEFT(RIGHT(H20,7))*9 LEFT(RIGHT(H20,6))*10LEFT(RIGHT(H20,5))*5 LEFT(RIGHT(H20,4))*8 LEFT(RIGHT(H20,3))*4LEFT(RIGHT(H20,2))*2),11)1,1,0,"X",9,8,7,6,5,4,3,2)=LEFT(RIGHT(H20,1)),"正确!","出错啦!"),IF(CHOOSE(MOD(SUM(LEFT(RIGHT(H20,18))*7 LEFT(RIGHT(H20,17))*9LEFT(RIGHT(H20,16))*10 LEFT(RIGHT(H20,15))*5 LEFT(RIGHT(H20,14))*8 LEFT(RIGHT(H20,13))*4 LEFT(RIGHT(H20,12))*2 LEFT(RIGHT(H20,11))*1LEFT(RIGHT(H20,10))*6 LEFT(RIGHT(H20,9))*3 LEFT(RIGHT(H20,8))*7LEFT(RIGHT(H20,7))*9 LEFT(RIGHT(H20,6))*10 LEFT(RIGHT(H20,5))*5LEFT(RIGHT(H20,4))*8 LEFT(RIGHT(H20,3))*4 LEFT(RIGHT(H20,2))*2),11)1,1,0,"X",9,8,7,6,5,4,3,2)=LEFT(RIGHT(H20,1))*1,"正确!","出错啦!")),IF(LEN(H20)=15,"老号,请注意!",IF(LEN(H20)=0,"缺号码","位数不对!")))验证公式二=MID("10X98765432",MOD(SUMPRODUCT(MID(H20,ROW(INDIRECT("1:17")),1)*2^(18 -ROW(INDIRECT("1:17")))),11) 1,1)=RIGHT(H20,1)身份证有15位和18位两种,身份证位数是否正确,我们可以用LEN函数判断。

身份证正确检验及验证公式

身份证正确检验及验证公式

公式二出处
EXCEL提取身份证出生日期、性别、检验身份证号码正确性
中国居民身份证号码是一组特征组合码,原为15位,现升级为18位,其编码规则为:
15位:6位数字常住户口所在县市的行政区划代码,6位数字出生日期代码,3位数字顺序码。
18位:6位数字常住户口所在县市的行政区划代码,8位数字出生日期代码,3位数字顺序码和1位检验码。
假定身份证号码在B1单元格,下面的公式可以综合判断以上三种错误:
验证公式三
=IF(OR(LEN(B1)=18,LEN(B1)=15),IF(LEN(B1)=18,IF(OR(MONTH(DATE(1*(MID(B1,7,4)),1*(MID(B1,11,2)),1*(MID(B1,13,2))))<>1*(MID(B1,11,2)),DAY(DATE(1*(MID(B1,7,4)),1*(MID(B1,11,2)),1*(MID(B1,13,2))))<>1*(MID(B1,13,2))),"月日错误",""),IF(LEN(B1)=15,IF(OR(MONTH(DATE(1*(MID(B1,7,2))+1900,1*(MID(B1,9,2)),1*(MID(B1,11,2))))<>1*(MID(B1,9,2)),DAY(DATE(1*(MID(B1,7,2))+1900,1*(MID(B1,9,2)),1*(MID(B1,11,2))))<>1*(MID(B1,11,2))),"月日错误",""))),"身份证位数不对")&IF(AND(LEN(B1)=18,1*MID(B1,7,4)>YEAR(TODAY())-6),"年份错误","")

身份证号码的最后一位校验码是怎么计算出来的

身份证号码的最后一位校验码是怎么计算出来的

身份证号码的最后一位校验码是怎么计算出来的?-身份证号码和真实姓名查询身份证是用于证明持有人身份的证件,多由各国或地区政府发行予公民,一般特指中华人民共和国居民身份证,大陆1984年前写作“身分证”。

1984年4月6日,国务院发布《中华人民共和国居民身份证试行条例》,并且开始颁发第一代居民身份证。

2004年3月29日起,中国大陆正式开始为居民换发内藏非接触式IC卡智能芯片的第二代居民身份证,第二代身份证表面采用防伪膜和印刷防伪技术,使用个人彩色照片,而且内置了数字芯片,采用了数字防伪措施,存有个人图像和信息,可以用机器读取。

我国不满16岁的公民可以采取自愿的原则申请领取第二代身份证。

要核查对方的身份证是否真实,一定要提高警惕,以免被使用假身份证的人侵犯财产或者人身安全!如何核查身份证的真假?在本网页按照提示填写被核查人的身份证号码、姓名和您的手机号码,然后点击“同意服务条款并提交”,然后按照网页提示操作就可以了,核实身份证号码和真实姓名的系统是直接调用全国身份证核查系统的,利用他们提供的接口进行身份证真伪核查的,用于核查您所提供的身份证号码和姓名是否一致,如果两者一致,并且核查数据库中存在照片,才可以显示出被核查者的照片。

在真正核查之前,没有人知道具体核查结果的,核查是按次收费的,只要核查出结果(核查结果包括:核查不一致,核查一致无照片,核查一致有照片),实际核查需要联网身份证核查系统,这是按次收费的,每核查一次,全国身份证中心都要收费一次。

一般只要您提供的身份证号码和姓名核查一致的话,能提供出照片的可能性在90%以上。

2011年居民身份证号码和真实姓名查询步骤:第一步(输入居民身份证号码和姓名):输入真实姓名和真实身份证号码,点击:“确认查询”,在弹出的信息窗口中将生成一个查询订单号,请记录此订单号;第二步(付款):记录好订单号后,点击“确认”按钮,将出现支付宝支付平台(如图一),请用您的支付宝帐号登录,登录后您可以用支付宝余额支付(需安装支付宝数字证书)或网银支付(如图二)。

身份证计算公式

身份证计算公式

ai 3 4 0 5 2 4 1 9 8 0 0 1 0 1 0 0 1 a1
Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
ai×Wi 21 36 0 25 16 16 2 9 48 0 0 9 0 5 0 0 2 a1
根据公式(1)进行计算:
i----表示号码字符从由至左包括校验码在内的位置序号;
ai----表示第i位置上的号码字符值;
Wi----示第i位置上的加权因子,其数值依据公式Wi=2(n-1)(mod 11)计算得出。
i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
2、地址码
表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
3、出生日期码
表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
4、顺序码
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
15位的身份证编码首先把出生年扩展为4位,简单的就是增加一个19,但是这对于1900年出生的人不使用(这样的寿星不多了)
某男性公民身份号码本体码为34052419800101001,首先按照公式⑴计算:
∑(ai×Wi)(mod 11)……………………………………(1)
公式(1)中:
校验码字符值ai 1 0 X 9 8 7 6 5 4 3 2
根据上表,查出计算结果为2的校验码为所以该人员的公民身份号码应该为 34052419800101001X。
C#代码:
private string per15To18(string perIDSrc)

身份证号码编号规则,最后一位校验码计算规则

身份证号码编号规则,最后一位校验码计算规则

⾝份证号码编号规则,最后⼀位校验码计算规则 ⼀、⾝份证号码执⾏标准: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个号码将不再分配给任何派出所。

三、关于地址码含义的详细解释: ⾝份证前六位是地区代码,我们⽤ABCDEF表⽰。

18位身份证号码最后一位校验码的计算方法-推荐下载

18位身份证号码最后一位校验码的计算方法-推荐下载
根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份 号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次 为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。生日期码表示编码对 象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。顺序码表 示同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。顺序码的 奇数分给男性,偶数分给女性。校验码是根据前面十七位数字码,按照 ISO 7064:1983.MOD 11-2 校验码计算出来的检验码。下面举例说明该计算方法。
某男性公民身份号码本体码为 34052419800101001,首先按照公式⑴计算:
∑(ai×Wi)(mod 11)……………………………………(1) 公式(1)中: i----表示号码字符从由至左包括校验码在内的位置序号; ai----表示第 i 位置上的号码字符值; Wi----示第 i 位置上的加权因子,其数值依据公式 Wi=2(n-1)(mod 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 四、举例如下: 北京市朝阳区: 11010519491231002X 广东省汕头市: 440524188001010014
=============================
表示编码对象出生的年、月、日,按 GB/T7408 的规定执行,年、月、日代码之间不用分隔 符。 4、顺序码 表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺 序码的奇数分配给男性,偶数分配给女性。 5、校验码 (1)十七位数字本体码加权求和公式 S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前 17 位数字的权求和 Ai:表示第 i 位置上的身份证号码数字值 Wi:表示第 i 位置上的加权因子 Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 (2)计算模 Y = mod(S, 11)

用Excel校验身份证号码的方法

用Excel校验身份证号码的方法

用Excel校验身份证号码的方法威远县东联镇小学校·罗斌身份证号码中的校验码是身份证号码的最后一位,是根据〖中华人民共和国国家标准GB 11643-1999〗中有关公民身份号码的规定,根据相应的规定计算出来的。

公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。

排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码,最后一位是数字校验码。

最后一位的数字校验码是由前17位唯一确定的,随便乱填的身份证号就不能通过校验。

下面分步详细介绍一下用Excel校验身份证号码的一种方法:1.在D1到T1这17个单元格中依次输入1到17这17个数。

2.在D2中输入公式:=2^(18-D1)。

单击D2拖动鼠标向右填充到T2。

3.在D3中输入公式:=MOD(D2,11)以得到身份证第一位的校验系数。

单击D3拖动鼠标向右填充至T3可以得到前17位中每一位的校验系数。

4.在B5至B14中输入要校验的身份证号码(这里选择的是10个身份证号码),实际选择的身份证号码数可以自定。

5.在D5中输入公式:=MID($B5,D$1,1)*1以提取身份证的第一个数字,乘1的目的是将第一个数字由文本格式转为数字格式,便于后续的计算。

单击D5拖动鼠标向右填充至T5可以得到身份证号的前17位的每个数字。

6.在U5中输入公式:=SUMPRODUCT($D$3:$T$3,D5:T5)计算出前十七位数字和相应的校验系数的乘积之和。

7.在V5中输入公式:=MOD(1-U5,11)以得到该身份证的校验数。

8.在W5中输入公式:=IF(V5=10,"X",V5)以得到该身份证的校验码。

9.在X5中输入公式:=MID(B5,1,17)&W5得到由前17位计算出的正确的身份证号码。

10.在C5 中输入公式:=IF(B5=X5,"校验正确","号码错误!")以得到第一个身份证的校验结果。

条码软件中校验码是如何计算的

条码软件中校验码是如何计算的

条码软件中校验码是如何计算的在百度上看到这样一个问题:为什么下载的条码软件制作的条码标签校验位和原来的不一样?并附了两张图。

我用领跑条码标签设计软件制作了一遍。

最后一位校验位和原来的标签一样,没什么区别。

然后就明白了个大概,那位用户下载的是所谓免费的条码软件。

问题就出在这。

校验码是由编码方案决定的,普通的条码软件也做不了那么精密,最后出问题也找不到售后,麻烦的还是自己。

所以个人还是看好专业的条码软件。

言归正传,条码软件中校验码是如何计算的?下面搜集了以下几种校验码的计算方法,以供参考。

首先说商品条码。

商品条码中需要计算校验码的有:EAN-8(8位),EAN-13(13位),UCC(UPC-A)(12位),GTIN-14(ITF-14)(14位),GLN(13位),SSCC(18位)等。

它们虽然位数不同,但计算校验码的方法完全相同。

1、包含校验码的所有数字从右向左编号,分别为1,2,3......18位; 2、从第2位开始,所有偶数位的权数为3,从第3位开始,所有奇数位的权数为1;3、将对应位置的代码数字与权数相乘,参见下图(以SSCC的18位数字为例);4、将所有乘积相加求和;(结果为109);5、对第4步的和,求MOD 10运算(将和109除以10,取其余数9);6、如果余数为0,则校验码为0,否则,用10减去余数的差即为校验码。

(上例中校验码为1)。

其次是身份证校验码。

身份证校验码的计算比较复杂一些,1、自右向左为身份证号编号1-18;2、确定各位数的权数,权数的计算公式为2^(i-1) mod 11 i—位数,第3位的权数为2^(3-1)=2^2=4, 4除以11,商0余4,则权数为4。

再如第5位的权数为2^(5-1)=2^4=16,16除以11,商1余5,则权数为5。

3、将权数与对应的身份证号数字相乘;4、将所有乘积相加求和;(示例中的184)5、将第4步的结果除以11,求余数(示例中的8);6、从下表的R值中找到第5步的结果,对应的C值即为校验码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

身份证校验码计算公式
校验码是识别一个身份证号码是否真实存在的重要的依据。

那我们要如何通过校验码来判断一个身份证号码是否真实的呢?校验码如何判断身份证号码真伪呢?我们来看看具体计划过程。

第一步:将身份证号码的第1位数字与7相乘;将身份证号码的第2位数字与9相乘;将身份证号码的第3位数字与10相乘;将身份证号码的第4位数字与5相乘;将身份证号码的第5位数字与8相乘;将身份证号码的第6位数字与4相乘;将身份证号码的第7位数字与2相乘;将身份证号码的第8位数字与1相乘;将身份证号码的第9位数字与6相乘;将身份证号码的第10位数字与3相乘;将身份证号码的第11位数字与7相乘;将身份证号码的第12位数字与9相乘;将身份证号码的第13位数字与10相乘;将身份证号码的第14位数字与5相乘;将身份证号码的第15位数字与8相乘;将身份证号码的第16位数字与4相乘;将身份证号码的第17位数字与2相乘。

第二步:将第一步身份证号码1~17位相乘的结果求和,全部加起来。

第三步:用第二步计算出来的结果除以11,这样就会出现余数为0,余数为1,余数为2,余数为3,余数为4,余数为5,余数为6,余数为7,余数为8,余数为9,余数为10共11种可能性。

第四步:如果余数为0,那对应的最后一位身份证的号码为1;如果余数为1,那对应的最后一位身份证的号码为0;如果余数为2,那对应的最后一位身份证的号码为X;如果余数为3,那对应的最后一位身份证的号码为9;如果余数为4,那对应的最后一位身份证的号码为8;如果余数为5,那对应的最后一位身份证的号码为7;如果余数为6,那对应的最后一位身份证的号码为6;如果余数为7,那对应的最后一位身份证的号码为5;如果余数为8,那对应的最后一位身份证的号码为4;如果余数为9,那对应的最后一位身份证的号码为3;如果余数为10,那对应的最后一位身份证的号码为2。

相关文档
最新文档