身份证校验算法与ASP程序
身份证校验算法与ASP程序
发布时间:2016-12-29 来源:查字典编辑
摘要:18位身份证校验算法身份证校验码算法身份证校验码产生方法:∑(ai×Wi)(mod11)i:表示号码字符从由至左包括校验码在内的位置序号;a...

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

关于户籍判断则而要数据库.这里就不提供了.

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新ASP教程学习
热门ASP教程学习
编程开发子分类