ChaSfz 用ASP实现身份证验证

用ASP实现身份证验证

更新时间:2015/6/24 11:31:34

<%

'身份证校验

Function CheckidCard(idcard)

Dim LenCard

LenCard=Len(idcard)

'判断身份证长度

if not (LenCard = 15 Or LenCard = 18) Then

CheckidCard= "身份证长度不是15位或18位"

exit Function

End If

'变量声明区

dim WeightedFactor,VerifyCode,area,birthday,lastnum,Ai,i,Total,Modnum,sex,age,province,sexNum,provinceID

WeightedFactor = array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2) '为前17位各个数字对应的加权因子

VerifyCode = array(1,0,"x",9,8,7,6,5,4,3,2) '通过模得到的校验码

area="11北京,12天津,13河北,14山西,15内蒙古,21辽宁,22吉林,23黑龙江,31上海,32江苏,33浙江,34安徽,35福建,36江西,37山东,41河南,42湖北,43湖南,44广东,45广西,46海南,50重庆,51四川,52贵州,53云南,54西藏,61陕西,62甘肃,63青海,64宁夏,65新疆,71台湾,81香港,82澳门,91国外"

'判断地区

provinceID=left(idcard,2)

if instr(area,provinceID)=0 then

CheckidCard= "身份证头2位错误"

exit function

end If

'补齐15位卡号

if LenCard= 15 then idcard=left(idcard,6) & "19" & mid(idcard,7,9)

'判断生日

birthday= mid(idcard,7,4)+"-"+mid(idcard,11,2)+"-"+mid(idcard,13,2)

if not isdate(birthday) then

CheckidCard= "生日非法"

exit function

end If

if datediff("yyyy",cdate(birthday),date())<18 then

CheckidCard= "你还未满18岁,不可能有身份证的"

exit function

end If

'判断检验码

if len(idcard)=18 then

lastnum=int(right(idcard,1)) 'lastnum为18位身份证最后一位

Ai=left(idcard,17) 'Ai为除最后一位字符的字串

For i = 0 To 16

Total = Total + cint(Mid(Ai,i+1,1)) * WeightedFactor(i) 'Total前17位数字与对应的加权因子积的和

Next

Modnum=total mod 11 '此数为模,total除以11后的余数

if VerifyCode(Modnum)<>lastnum then

CheckidCard= "最后一位校验码不对"

exit function

end if

end If

'计算性别

sexNum=mid(idcard,17,1)

sex="男性"

if (sexNum mod 2) =0 then sex="女性"

'计算年龄

age=datediff("yyyy",cdate(birthday),date())

'计算省份

province=mid(area,instr(area,provinceID)+2,3)

province=replace(province,",","")

CheckidCard= "恭喜,身份证通过校验<br/>" & "您为:" & sex & ",来自于:" & province & ",生日为:" & birthday

End Function

%>

关于“用ASP实现身份证验证 ”的相关问答集锦

以下是与 身份证验证 相关的几篇文章,希望对您有所帮助:

java身份证验证

也是在网上找的一个方法,放到这里备用,嘿嘿/***********************************身份证验证开始****************************************//***身份证号码验证*1、号......

验证身份证的真假怎么验证呢?

核查人返回比对结果,提示比对是否一致。 为防止不法分子伪造身份证照片,查询结果还将返回该身份证拥有者的真实照片。 查询一次收费5元 身份信息核查服务收费标准为5元/人次,但发送短信和手机上网等电信资费需按照具体业务价格另外支付。使用手机查询身份证真伪的资费标准已经通过国家发改委、财政部批准。 据警方统计,90%以上的预谋诈骗犯罪分子都会使用假身份证件,而社会上也有一部分人出于不正当的目的,刻意隐瞒自己真实的身份信息,新开通的身份证核查方式将能更好地预防不法分子的一些行为。 据调查,各......

中华人民共和国身份证验证规则

黑龙江省开放身份证验证平台

上一篇:违章罚款的相关知识
下一篇:河北出台20项便民措施 居民身份证件照可以自助拍