身份证末位校验

合集下载

身份证末位计算法

身份证末位计算法

身份证号的前6位表示公民常住所在市、县、区的划分代码。

然后是8位出生日期码、表示公民公历年月日生日、然后3位是顺序码、表示在同一地址码所标识的区域范围内、对同年、同月、同日生的人编定的顺序号、单数分配给男性、双数分配给女性、第18位、校验码、采用数据处理系统、根据前17位数字码计算出来的、可以用来判定身份号码是否合法、真伪。

身份证号前17数字分别对应不同的系数、这个系数是规定好的、由左往右依次是7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2
用上面的17位数依次乘你身份证前17位数、然后把所得的积相加在除以11得到的余数再对应校验码!
得到的余0、1、2、3、4、5、6、7、8、9、10依次对应1、0、X、9、8、7、6、5、4、3、2
也就是说你身份正前17位相乘的积加起来除以11的余数是2、那么对应的就是X,否则这个身份证就是不合法的
第17数男性为单数、女性为双数、也就是说不用看身份证只要看这个号就知道男女了!查夜店在登记处有人用这个。

以前单位一个同事身份证号第18位就是X,都不明白是怎么回事,这回才明白,校验码是1,0,X,9,8,7,6,5,4,3,2.十一个数,也就是012345678910,其中用XX代替10,如果算出你前17位余数是2,那么你身份尾数就是10,这样就变成19位不合法了,所以X用10代替,X也是罗马号10的意思,这样就还是18位。

身份证校验码计算公式

身份证校验码计算公式

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

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

第一步:将身份证号码的第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。

【2017年整理】身份证号码编码规则

【2017年整理】身份证号码编码规则

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

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

可以用字母表示如为ABCDEFYYYYMMDDXXXR。

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

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

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

4.校验码(R):一位数字,通过前17 位数字按照ISO 7064:1983.MOD 11-2 校验码计算得出。

15 位的身份证编码首先把出生年扩展为4 位,简单的就是增加一个19,但是这对于1900 年出生的人不使用(这样的寿星不多了)关于地址码含义的详细解释:身份证前六位是地区代码,我们用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 港、澳生日期码(YYYYMMDD)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。

身份证号码最后一位校检码的计算公式

身份证号码最后一位校检码的计算公式

⾝份证号码最后⼀位校检码的计算公式我国现⾏使⽤公民⾝份证号码有两种尊循两个国家标准,〖GB 11643-1989〗和〖GB 11643-1999〗。

〖GB 11643-1989〗中规定的是15位⾝份证号码:排列顺序从左⾄右依次为:六位数字地址码,六位数字出⽣⽇期码,三位数字顺序码,其中出⽣⽇期码不包含世纪数。

〖GB 11643-1999〗中规定的是18位⾝份证号码:公民⾝份号码是特征组合码,由⼗七位数字本体码和⼀位数字校验码组成。

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

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

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

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

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

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

为什么除11,在于计算校验码时的函数。

请看下边的函数:公式如下:∑(a[i]*W[i]) mod 11 ( i = 2, 3, ..., 18 ) (1)"*" 表⽰乘号i--------表⽰⾝份证号码每⼀位的序号,从右⾄左,最左侧为18,最右侧为1。

a[i]-----表⽰⾝份证号码第 i 位上的号码W[i]-----表⽰第 i 位上的权值 W[i] = 2^(i-1) mod 11计算公式 (1) 令结果为 R根据下表找出 R 对应的校验码即为要求⾝份证号码的校验码C。

R 0 1 2 3 4 5 6 7 8 9 10C 1 0 X 9 8 7 6 5 4 3 2由此看出 X 就是 10,罗马数字中的 10 就是X,所以在新标准的⾝份证号码中可能含有⾮数字的字母X。

~(重点看清楚)~ 这个函数展开就是:a[1]*W[1]+a[2]*W[2]+……+a[18]*W[18]=?mod11=“?对11求模”如:22mod11=2 23mod22也是2 33mod11=3就是出于后⾯那个数,只取商不取余数所以从函数和其展开式来看要对11求模,所⼀要除11以下为列⼦:*此函数功能:输⼊的15位或17位或18位的⾝份证号,返回校验后的最后⼀位**-----------------------------FUNCTION sfzjyParameters cIDDO CASECASE LEN(ALLTRIM(cID)) = 15cID = STUFF(ALLTRIM(cID),7,0,"19")CASE LEN(ALLTRIM(cID)) = 18 OR LEN(ALLTRIM(cID)) = 17cID =LEFT(ALLTRIM(cID),17)OTHERWISERETURN .F.ENDCASEIf Len(ALLTRIM(cID))#17Return .f.EndifnSum=Val(SubStr(cID,1,1)) * 7 ;+ Val(SubStr(cID,2,1)) * 9 ;+ Val(SubStr(cID,3,1)) * 10 ;+ Val(SubStr(cID,4,1)) * 5 ;+ Val(SubStr(cID,5,1)) * 8 ;+ Val(SubStr(cID,6,1)) * 4 ;+ Val(SubStr(cID,7,1)) * 2 ;+ Val(SubStr(cID,8,1)) * 1 ;+ Val(SubStr(cID,9,1)) * 6 ;+ Val(SubStr(cID,10,1)) * 3 ;+ Val(SubStr(cID,11,1)) * 7 ;+ Val(SubStr(cID,12,1)) * 9 ;+ Val(SubStr(cID,13,1)) * 10 ;+ Val(SubStr(cID,14,1)) * 5 ;+ Val(SubStr(cID,15,1)) * 8 ;+ Val(SubStr(cID,16,1)) * 4 ;+ Val(SubStr(cID,17,1)) * 2*计算校验位check_number=INT((12-nSum % 11)%11)If check_number=10check_number='X'EndifReturn check_numberEndfunc*-----------------------------**此函数功能:输⼊的15位或18位⾝份证号,返回正确的18位的⾝份证号。

身份证号码编码规则

身份证号码编码规则

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

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

可以⽤字母表⽰如为 ABCDEFYYYYMMDDXXXR。

其含义如下:1. 地址码(ABCDEF):表⽰编码对象常住户⼝所在县(市、旗、区)的⾏政区划代码,按 GB/T2260 的规定执⾏。

2. 出⽣⽇期码(YYYYMMDD):表⽰编码对象出⽣的年、⽉、⽇,按 GB/T7408 的规定执⾏,年、⽉、⽇分别⽤ 4 位、2 位(不⾜两位加 0)、2(同上)位数字表⽰,之间不⽤分隔符。

3. 顺序码(XXX):表⽰在同⼀地址码所标识的区域范围内,对同年、同⽉、同⽇出⽣的⼈编定的顺序号,顺序码的奇数分配给男性,偶数分配给⼥性。

4.校验码(R):⼀位数字,通过前 17 位数字按照 ISO 7064:1983.MOD 11-2 校验码计算得出。

15 位的⾝份证编码⾸先把出⽣年扩展为 4 位,简单的就是增加⼀个 19,但是这对于 1900 年出⽣的⼈不使⽤(这样的寿星不多了)关于地址码含义的详细解释:⾝份证前六位是地区代码,我们⽤ 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 港、澳⽣⽇期码(YYYYMMDD)表⽰编码对象出⽣的年、⽉、⽇,其中年份⽤四位数字表⽰,年、⽉、⽇之间不⽤分隔符。

身份证号码编码规则

身份证号码编码规则

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

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

可以用字母表示如为ABCDEFYYYYMMDDXXXR。

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

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

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

4.校验码(R):一位数字,通过前17 位数字按照ISO 7064:1983.MOD 11-2 校验码计算得出。

15 位的身份证编码首先把出生年扩展为4 位,简单的就是增加一个19,但是这对于1900 年出生的人不使用(这样的寿星不多了)关于地址码含义的详细解释:身份证前六位是地区代码,我们用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 港、澳生日期码(YYYYMMDD)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。

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。

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

身份证号码编码规则

身份证号码编码规则

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

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

可以⽤字母表⽰如为 ABCDEFYYYYMMDDXXXR。

其含义如下:1. 地址码(ABCDEF):表⽰编码对象常住户⼝所在县(市、旗、区)的⾏政区划代码,按 GB/T2260 的规定执⾏。

2. 出⽣⽇期码(YYYYMMDD):表⽰编码对象出⽣的年、⽉、⽇,按 GB/T7408 的规定执⾏,年、⽉、⽇分别⽤ 4 位、2 位(不⾜两位加 0)、2(同上)位数字表⽰,之间不⽤分隔符。

3. 顺序码(XXX):表⽰在同⼀地址码所标识的区域范围内,对同年、同⽉、同⽇出⽣的⼈编定的顺序号,顺序码的奇数分配给男性,偶数分配给⼥性。

4.校验码(R):⼀位数字,通过前 17 位数字按照 ISO 7064:1983.MOD 11-2 校验码计算得出。

15 位的⾝份证编码⾸先把出⽣年扩展为 4 位,简单的就是增加⼀个 19,但是这对于 1900 年出⽣的⼈不使⽤(这样的寿星不多了)关于地址码含义的详细解释:⾝份证前六位是地区代码,我们⽤ 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 港、澳⽣⽇期码(YYYYMMDD)表⽰编码对象出⽣的年、⽉、⽇,其中年份⽤四位数字表⽰,年、⽉、⽇之间不⽤分隔符。

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