时间:2021-05-25
18位身份证校验算法
身份证校验码算法
身份证校验码产生方法:
∑(ai×Wi)(mod11)
i:表示号码字符从由至左包括校验码在内的位置序号;
ai表示第i位置上的号码字符值;
Wi第i位置上的加权因子,其数值Wi=mod(power(2,(n-1)),11)
i181716151413121110987654321
Wi79105842163791058421
相应的校验码:
∑(ai×WI)(mod11)012345678910
校验码字符值ai10X98765432
下面是校验函数:
FUNCTIONsfzjy(num)
iflen(num)=15then
cID=left(num,6)&"19"&right(num,9)
elseiflen(num)=17orlen(num)=18then
cID=left(num,17)
endif
nSum=mid(cID,1,1)*7
nSum=nsum+mid(cID,2,1)*9
nSum=nsum+mid(cID,3,1)*10
nSum=nsum+mid(cID,4,1)*5
nSum=nsum+mid(cID,5,1)*8
nSum=nsum+mid(cID,6,1)*4
nSum=nsum+mid(cID,7,1)*2
nSum=nsum+mid(cID,8,1)*1
nSum=nsum+mid(cID,9,1)*6
nSum=nsum+mid(cID,10,1)*3
nSum=nsum+mid(cID,11,1)*7
nSum=nsum+mid(cID,12,1)*9
nSum=nsum+mid(cID,13,1)*10
nSum=nsum+mid(cID,14,1)*5
nSum=nsum+mid(cID,15,1)*8
nSum=nsum+mid(cID,16,1)*4
nSum=nsum+mid(cID,17,1)*2
'*计算校验位
check_number=12-nsummod11
Ifcheck_number=10thencheck_number="X"elseIfcheck_number=12thencheck_number="1"elseifcheck_number=11thencheck_number="0"Endifsfzjy=check_number
Endfunction
其它校验:
性别与出生年月:
sfznum=身份证号码
lenx=len(sfznum)
iflenx=15then
yy="19"&mid(xian,7,2)
mm=mid(xian,9,2)
dd=mid(xian,11,2)
aa=mid(xian,15,1)'15位身分证取第十五位,能被2整除为女性
endif
iflenx=18then
yy=mid(xian,7,4)
mm=mid(xian,11,2)
dd=mid(xian,13,2)
aa=mid(xian,17,1)'18位身分证取第十七位,能被2整除为女性
endif
ifaamod2=0then
xb="女"
else
xb="男"
endif
iflenx=18then
ifmid(xian,18,1)<>cstr(sfzjy(xian))then'如果第十八位校验码不等于计算出的校验码则身份证号码有误.
response.write"提示:身份证校验位错误!"
else
response.write"结果:身份证号码校验为合法号码!"
endif
else'如果输入的是十五位号,则计算出十八位新号
response.write"新身份证:"&left(xian,6)&"19"&right(xian,9)&cstr(sfzjy(xian))
endif
关于户籍判断则而要数据库.这里就不提供了.
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
java身份证合法性校验并获取身份证号有效信息,供大家参考,具体内容如下java身份证合法性校验/**身份证前6位【ABCDEF】为行政区划数字代码(简称数字码
下面看下sqlserver2000身份证校验的代码,具体代码如下所示:ifexists(select*fromsysobjectswhere
jquery校验中国身份证号码实例详解大陆18位身份证(第二代身份证)身份号码是一组具有特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:
开发过程中,会遇到一些常用的正则需求。比如,校验身份证号是否合法。下面一段简单的代码就能瞬间解决问题啦!StringUtils.java/***身份证号校验**
复制代码代码如下:其中的$idcard_base是指身份证中的本位码,本位码是18位身份证里才有的,也就是18位身份证的前17位,最后一位称为校验码一般在使用的