二代身份证校验码推算验证
第二代居民身份证防伪识别方式
关于二代身份证防伪识别方式二代身份证防伪的要紧特点是芯片技术,通过机读能够有效识别真伪;另外也有一些视读防伪标识。
一、二代身份证描述:第二代居民身份证是由多层聚酯材料复合而成的单页卡式证件,采纳非接触式IC卡技术制作,具有视读和机读两种功能。
证件尺寸设计为:85.6mm×54.0mm×1.0mm。
证件正面有签发机关和有效期限,印有国徽图案、证件名称、写意长城图案及彩色扭索花纹;证件反面设计有姓名、性别、民族、诞生日期、常住户口所在地住址、公民身份号码和本人相片7个记录项目。
印有彩色花纹,图案底纹为彩虹扭索花纹,颜色从左至右为浅蓝色至浅粉色再至浅蓝色。
二、二代身份证的防伪技术:第二代身份证具有视读和机读两种功能,并采纳两种防伪方法:证件芯片采纳数字防伪方法,可在对证件机读时完成认证;表面采纳防伪膜和印刷防伪技术,防伪膜采纳具有自主知识产权的定向光变色膜等技术,印刷防伪技术包括底纹精细、缩微、彩虹印刷,印刷图案中隐藏加密点和变形加密字。
三、二代身份证六大转变:与一代证比较,二代证要紧有六大转变:1.芯片存储量大。
新式身份证采纳非接触式IC卡作为卡体,非接触式IC卡电路由天线和芯片模块组成,被封装在塑料基片内,芯片长8毫米,宽5毫米,厚0.4毫米。
写入的信息可划分平安品级,分区存储,容量更大。
2.证件外表转变。
证件底纹采纳彩虹印刷技术,颜色从左至右为浅蓝色至浅粉色再至浅蓝色。
证件反面有持证人照片、记录项目(姓名、性别、民族、诞生、住址、公民身份号码)。
3.制证周期缩短。
证件信息搜集和传输采纳数码照相和运算机技术,能够大大缩短制证周期。
4.数字防伪技术。
数字防伪用于机读信息的防伪,将持证人的照片图像和身份项目内容等数字化后采纳密码技术加密,存入芯片,能够有效起到证件防伪的作用,避免伪造证件或窜改证件机读信息内容。
5.明确了有效期。
新版身份证明确了有效期。
《居民身份证法》规定:16周岁至25周岁的居民将发给有效期10年的居民身份证;26周岁至45周岁的居民将发给有效期20年的居民身份证;46周岁以上的,发给长期有效的居民身份证。
第二代身份证真伪识别方法
第二代身份证真识别方法居民身份证是国家法定的证明公民个人身份的证件。
为了堵塞和制止假居民身份证的流通和使用,在查验和核查居民身份证时可掌握以下几个要点:居民身份证的整体识别1.居民身份证规格为88mm×60mm,四角呈圆弧状。
式样为聚脂薄膜密封、持证人像片和登记内容一体化的单页卡式,即证件是经翻拍印制后塑封而成。
2.证件正面主要颜色为红、绿二色,印有中华人民共和国国徽和证件名称,以及环状、网状、团状花纹图案;背面为浅绿色,印有中华人民共和国版图、持证人标准像片,以及网状花纹图案,姓名、性别、民族、出生年月日、住址五个登记项目和签发日期、有效期限、编号三个项目及签发机关印章。
新的防伪居民身份证背面透视全息图象由长城峰火台图象ID CHINA 中国等字样组成。
“ID长城峰火台图象CHINA中国”在“中国CHINA ID”组成的背景前由内向外依次排列。
证件签发机关为县公安局、不设区的市公安局和设区的公安分局。
3.居民身份证从登记项目、填写内容和颜色上还有其他两种形式:a.民族自治地方颁发的居民身份证。
证件背面五个登记项目和签发机关印章,同时使用汉字和相应的少数民族文字印刷和刻制(宁夏回族自治区除外)。
常见的少数民族文字有:维吾尔文、哈萨克文、蒙古文、藏文、朝鲜文、壮文、彝文等。
证件“出生年月日”的登记项目改为“出生日期”。
如:内地和经济特区颁发的证件,登记为“出生1949年10月1日”,民族自治地方颁发的证件则登记为“出生日期1949.10.1”。
证件填写内容分为只书写汉字(如广西壮族自治区和内蒙古自治区部分地区)和同时书写汉字和少数民族文字(如新疆维吾尔自治区、西藏自治区、内蒙古自治区部分地区、吉林省延边朝鲜族自治州和四川、云南、青海、甘肃、黑龙江、吉林、辽宁等省部分民族自治地方)两类。
少数民族文字在上方,汉字在下方(蒙古文文字在左,汉字在右)。
对加入中国国籍的外国人,如本人的民族名称与我国民族名称不同,本人是什么民族就填写什么民族,但民族名称后应加注“入籍”二字,如“民族乌克兰(入籍)”。
身份证号码的规则及验证原理
⾝份证号码的规则及验证原理【⾝份证号码的规则】1、15位⾝份证号码组成:ddddddyymmddxxs共15位,其中:dddddd为6位的地⽅代码,根据这6位可以获得该⾝份证号所在地。
yy为2位的年份代码,是⾝份证持有⼈的出⾝年份。
mm为2位的⽉份代码,是⾝份证持有⼈的出⾝⽉份。
dd为2位的⽇期代码,是⾝份证持有⼈的出⾝⽇。
这6位在⼀起组成了⾝份证持有⼈的出⽣⽇期。
xx为2位的顺序码,这个是随机数。
s为1位的性别代码,奇数代表男性,偶数代表⼥性。
2、18位⾝份证号码组成:ddddddyyyymmddxxsp共18位,其中:其他部分都和15位的相同。
年份代码由原来的2位升级到4位。
最后⼀位为校验位。
校验规则是:(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)(3)通过模得到对应的校验码Y: 0 1 2 3 4 5 6 7 8 9 10校验码: 1 0 X 9 8 7 6 5 4 3 2也就是说,如果得到余数为1则最后的校验位p应该为对应的0.如果校验位不是,则该⾝份证号码不正确。
以下为js版本的校验实例。
<script language="javascript"><!--var powers=new Array("7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2");var parityBit=new Array("1","0","X","9","8","7","6","5","4","3","2");var sex="male";//校验⾝份证号码的主调⽤function validId(obj){var _id=obj.value;if(_id=="")return;var _valid=false;if(_id.length==15){_valid=validId15(_id);}else if(_id.length==18){_valid=validId18(_id);}if(!_valid){alert("⾝份证号码有误,请检查!");obj.focus();return;}//设置性别var sexSel=document.getElementById("sex");var options=sexSel.options;for(var i=0;i<options.length;i++){if(options[i].value==sex){options[i].selected=true;break;}}}//校验18位的⾝份证号码function validId18(_id){_id=_id+"";var _num=_id.substr(0,17);var _parityBit=_id.substr(17);var _power=0;for(var i=0;i< 17;i++){//校验每⼀位的合法性if(_num.charAt(i)<'0'||_num.charAt(i)>'9'){return false;break;}else{//加权_power+=parseInt(_num.charAt(i))*parseInt(powers[i]);//设置性别if(i==16&&parseInt(_num.charAt(i))%2==0){sex="female";}else{sex="male";}}}//取模var mod=parseInt(_power)%11;if(parityBit[mod]==_parityBit){return true;}return false;}//校验15位的⾝份证号码function validId15(_id){_id=_id+"";for(var i=0;i<_id.length;i++){//校验每⼀位的合法性if(_id.charAt(i)<'0'||_id.charAt(i)>'9'){return false;break;}}var year=_id.substr(6,2);var month=_id.substr(8,2);var day=_id.substr(10,2);var sexBit=_id.substr(14);//校验年份位if(year<'01'||year >'90')return false;//校验⽉份if(month<'01'||month >'12')return false;//校验⽇if(day<'01'||day >'31')return false;//设置性别if(sexBit%2==0){sex="female";}else{sex="male";}return true;}//--></script><input type="text"onblur="validId(this)"maxlength=18 size=18> <select id="sex"><option value="male">男</option><option value="female">⼥</option>。
第二代身份证代码规则
第二代身份证代码规则/原理剖析及相关代码一、身份证号码执行标准: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=大连…… 只有地级城市有独立的城市代码,县级市没有。
身份证校验码的确定计算方法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《公民身份号码》中做了明确的规定。
身份证号码最后一位校检码的计算公式
⾝份证号码最后⼀位校检码的计算公式我国现⾏使⽤公民⾝份证号码有两种尊循两个国家标准,〖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位的⾝份证号。
新旧身份证合法性验证及相互转换算法
新旧⾝份证合法性验证及相互转换算法转⾃:新旧⾝份证合法性验证及相互转换算法——谨以此⽂献给共事3年即将离职的PPL作者:成晓旭 前天,看到PPL在⼀个需要⽹站上注册,但该⽹站要求输⼊⼀个⾝份证号码,并且随便输⼊⼀个还不⾏:对⽅还要验证输⼊⾝份证的合法性,所以,烦得PPL在⽹上到处去找。
基于此⽬前,特别在⽹上收集⾝份证相关的资料,整理成⽂,作为给PPL饯⾏的礼物之⼀,公布于我的Blog。
也预祝PPL:“找份好⼯作,找个好⽼婆!”1、关于中国居民⾝份证的常识: 我国现⾏使⽤公民⾝份证号码有两种尊循两个国家标准,〖GB11643-1989〗和〖GB 11643-1999〗。
〖GB11643-1989〗中规定的是15位⾝份证号码:排列顺序从左⾄右依次为:六位数字地址码,六位数字出⽣⽇期码,三位数字顺序码,其中出⽣⽇期码不包含世纪数。
〖GB11643-1999〗中规定的是18位⾝份证号码:公民⾝份号码是特征组合码,由⼗七位数字本体码和⼀位数字校验码组成。
排列顺序从左⾄右依次为:六位数字地址码,⼋位数字出⽣⽇期码,三位数字顺序码和⼀位数字校验码。
地址码:表⽰编码对象常住户⼝所在县(市、旗、区)的⾏政区划代码。
出⽣⽇期码:表⽰编码对象出⽣的年、⽉、⽇,其中年份⽤四位数字表⽰,年、⽉、⽇之间不⽤分隔符。
顺序码:表⽰同⼀地址码所标识的区域范围内,对同年、同⽉、同⽇出⽣的⼈员编定的顺序号。
顺序码的奇数分给男性,偶数分给⼥性。
校验码:是根据前⾯⼗七位数字码,按照ISO7064:1983.MOD 11-2校验码计算出来的检验码。
关于⾝份证号码最后⼀位的校验码的算法如下: ∑(a[i]*W[i]) mod11 ( i = 2, 3, …, 18 ) "*" :表⽰乘号 i:表⽰⾝份证号码每⼀位的序号,从右⾄左,最左侧为18,最右侧为1。
a[i]:表⽰⾝份证号码第i 位上的号码 W[i]:表⽰第 i 位上的权值 W[i] = 2^(i-1) mod 11 设:R = ∑(a[i]*W[i])mod 11 ( i = 2, 3, …, 18 ) C = ⾝份证号码的校验码 则R和C之间的对应关系如下表: R:0 12 3 4 5 6 7 8 9 10 C:1 0 X 9 8 7 6 5 4 3 2 由此看出 X 就是 10,罗马数字中的 10就是X,所以在新标准的⾝份证号码中可能含有⾮数字的字母X。
身份证校验算法
下面介绍算法:
计算公式令结果为 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))*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),"年份错误","")
第二代居民身份证号码的校验码计算模型、步骤、公式
②将公式①的(2n ÷ 11取余) 普 去掉,只留2n 通 公 式 ③将公式①的LookUp函数 换成Mid函数
④将公式②的LookUp函数 换成Mid函数
⑤将公式①变为数组公式, =LEFT(D2,17)&LOOKUP(MOD(SUM(MID(D2,ROW(INDIRECT("1:17")),1)*MOD(2^(18ROW(INDIRECT("1:17"))),11)),11),{0;1;2;3;4;5;6;7;8;9;10},{1;0;"X";9;8;7;6;5;4;3;2}) 按Ctrl+Shift+Enter组合键 数 组 公 式 ⑥将公式②变为数组公式, =LEFT(D2,17)&LOOKUP(MOD(SUM(MID(D2,ROW(INDIRECT("1:17")),1)*2^(18ROW(INDIRECT("1:178;9;10},{1;0;"X";9;8;7;6;5;4;3;2}) 按Ctrl+Shift+Enter组合键 ⑦将公式③变为数组公式, =LEFT(D2,17)&MID("10X98765432",MOD(SUM(MID(D2,ROW(INDIRECT("1:17")),1)*MOD(2^(18ROW(INDIRECT("1:17"))),11)),11)+1,1) 按Ctrl+Shift+Enter组合键 ⑧将公式④变为数组公式, =LEFT(D2,17)&MID("10X98765432",MOD(SUM(MID(D2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1) 按Ctrl+Shift+Enter组合键
身份证号码验证规则
身份证号码验证规则说明:该规则为平台通用规则,适用于所有填身份证号码的场景。
一、概述身份证号码中的校验码是身份证号码的最后一位,是根据GB 11643-1999中有关公民身份号码的规定,根据精密的计算公式计算出来的,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。
排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码,最后一位是数字校验码。
身份证最后一位是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。
Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。
二、需求产品身份证号码输入框内限制输入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;5、通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的X。
如果余数是10,身份证的最后一位号码就是2;例如:某男性的身份证号码是340524************。
我们要看看这个身份证是不是合法的身份证。
身份证倒数第二位
身份证倒数第二位1. 什么是身份证倒数第二位身份证倒数第二位是中国公民身份证号码中的一位数字,通常也被称为校验位。
校验位的作用是验证身份证号码的合法性以及防止假冒和冒用他人身份证号码。
每个人的身份证号码都是唯一且固定的,但通过校验位的验证可以帮助我们识别一些错误的身份证号码或者伪造的身份证号码。
因此,了解并正确使用身份证倒数第二位对于身份证号码的合法性验证非常重要。
2. 身份证倒数第二位的计算方法身份证倒数第二位是通过身份证号码前17位进行计算得出的。
具体的计算方法如下: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;余数为1时,校验位为0;余数为2时,校验位为X;余数为3~10时,校验位为(11-余数)。
3. 身份证倒数第二位的作用身份证倒数第二位是验证身份证号码合法性的重要依据之一,具有以下作用:3.1 合法性验证校验位可以帮助我们验证身份证号码的合法性。
因为每个人的身份证号码都是唯一且固定的,只有符合计算方法得出校验位的号码才是合法的身份证号码。
如果一个身份证号码的校验位与实际计算不符,则说明该身份证号码可能是错误的或者伪造的。
3.2 防止冒用和假冒校验位的存在有效防止了他人冒用和伪造他人的身份证号码。
因为伪造一个合法的身份证号码,并且同时能够符合校验位的计算是相对困难的。
因此,通过验证校验位可以确保身份证号码的真实性。
3.3 身份证分类及信息提取校验位也可以帮助我们识别身份证的分类。
根据校验位的不同取值,我们可以得知身份证号码对应的性别、年龄等信息。
例如,校验位为偶数表示性别为女性,校验位为奇数表示性别为男性。
4. 如何使用身份证倒数第二位进行验证验证身份证号码的合法性是非常重要的,特别是在一些需要核实个人身份的场合。
18位身份证校验位计算 身份证号校验
18位身份证号码的验证算法根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公合码,由十七位数字本体码和一位数字校验码组成。
排列顺序从左至右依次为:六位数字地址位数字出生日期码,三位数字顺序码和一位数字校验码。
地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。
生日期码表、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。
顺序码表示同一地址码所区域范围内,对同年、月、日出生的人员编定的顺序号。
顺序码的奇数分给男性,偶数分给女验码是根据前面十七位数字码,按照ISO7064:1983.MOD11-2校验码计算出来的检验码。
下面举该计算方法。
15位的身份证编码首先把出生年扩展为4位,简单的就是增加一个19,但是这对于用(这样的寿星不多了)某男性公民身份号码本体码为34052419800101001,首先按照公式⑴计算:∑(ai×Wi)(mod11) (1)公式(1)中:i----表示号码字符从由至左包括校验码在内的位置序号;ai----表示第i位置上的号码字符值;Wi----示第i位置上的加权因子,其数值依据公式Wi=2(n-1)(mod11)计算得出。
i18171615ai3405Wi79105ai×Wi2136025根据公式(1)进行计算:∑(ai×Wi)189=189189÷11=17∑(ai×Wi)(mod11)=2然后根据计算的结果,从下面的表中查出相应的校验码,其中X表示计算结∑(ai×WI)(mod11)012校验码字符值ai10X9根据上表,查出计算结果为2的校验码为所以该人员的公民身份号码应该为340524************。
定,公民身份号码是特征组至右依次为:六位数字地址码,八期码表示编码对象出生的年。
顺序码表示同一地址码所标识的奇数分给男性,偶数分给女性。
校计算出来的检验码。
身份证号码编号规则,最后一位校验码计算规则
⾝份证号码编号规则,最后⼀位校验码计算规则 ⼀、⾝份证号码执⾏标准: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位:612327 1976 0 4 1 0 012 X(地址码)(出生日期)(顺序码)(校验码)1、地址码(前六位数)表示编码对象常住户口所在县(市、旗、区)的行政区划代码。
2、出生日期码(第七位至十四位)表示编码对象出生的年、月、日。
3、顺序码(第十五位至十七位)表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
4、校验码(第十八位数)作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替。
1、某人的身份证编号是429001************,这个人的性别是(),出生日期是()年()月()日.2、王叔叔的身份证号码是330421************,请问王叔叔是()年()月()日出生的.3、身份证编号是410503************它的主人是____年____月____日出生,性别____.4、小红的身份证号码是 × × × × 27197307215821 ,小红的出生日期是(),顺序码是(),校验码是(),性别是()。
5、某人的身份证号码是 220324************,此人是()性,是()年()月()日出生的。
6、下面是小红的爷爷、奶奶、爸爸、妈妈四人的身份证号,请你观察分析一下他们的身份证号码,并指出分别是谁的身份证号码。
请说明你的理由。
(1)140321************ 是()的身份证。
(2)140321************ 是()的身份证。
(3)140321************ 是()的身份证。
(4)140321************ 是()的身份证。