设首页方便!- 办事指南- 新闻 - 房地产 - 汽车 - 商城 - 分类信息 - 保健 - 求职 - 旅游 - 证券 - 育儿 - 购物 - 影视 - 入收藏夹
装修 - 搬家 - 软件 - 游戏 - 交友 - 贺卡 - 体育 - 军事 - 文学 - 音乐 - 明星 - 写真 - 论坛 - 聊天 - 笑话 - 星座 - QQ - 性教育
你的位置:深圳800信息网>>电脑学院
操作系统 办公软件 平面设计 经验技巧 硬件天地 Dreamweaver Fireworks JavaScript ASP教程 JSP教程 .NET教程 服务器技术 数据库
 
身份证校验算法与ASP程序

作者:海豹 来源:深圳800 加入时间:2005-7-13 

18位身份证校验算法
身份证校验码算法
身份证校验码产生方法:
∑(ai×Wi)(mod 11)

i: 表示号码字符从由至左包括校验码在内的位置序号;

ai 表示第i位置上的号码字符值;

Wi 第i位置上的加权因子,其数值Wi=mod(power(2,(n-1)),11)

i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1

相应的校验码:
∑(ai×WI)(mod 11) 0 1 2 3 4 5 6 7 8 9 10
校验码字符值ai 1 0 X 9 8 7 6 5 4 3 2

下面是校验函数:

FUNCTION sfzjy(num)
if len(num)=15 then
cID = left(num,6)&"19"&right(num,9)
  elseif len(num)=17 or len(num)=18 then
cID = left(num,17)
  end if
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-nsum mod 11
If check_number=10 then check_number="X" elseIf check_number=12 then check_number="1" elseif check_number=11 then check_number="0" End if sfzjy=check_number
End function



其它校验:
性别与出生年月:

sfznum=身份证号码
lenx=len(sfznum)       
    if lenx=15 then
        yy="19"&mid(xian,7,2)
        mm=mid(xian,9,2)
        dd=mid(xian,11,2)
        aa=mid(xian,15,1)    '15位身分证取第十五位,能被2整除为女性

    end if
    if  lenx=18 then
        yy=mid(xian,7,4)
        mm=mid(xian,11,2)
        dd=mid(xian,13,2)
        aa=mid(xian,17,1)         '18位身分证取第十七位,能被2整除为女性
    end if
if aa mod 2=0 then
  xb="女"
  else
  xb="男"
end if

if lenx=18 then
if mid(xian,18,1)<>cstr(sfzjy(xian)) then    '如果第十八位校验码不等于计算出的校验码则身份证号码有误.
  response.write "提示:身份证校验位错误!"
  else
   response.write "结果:身份证号码校验为合法号码!"
end if
  else           '如果输入的是十五位号,则计算出十八位新号
  response.write "新身份证:"&left(xian,6)&"19"&right(xian,9)&cstr(sfzjy(xian))
end if

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



相关文章

ASP教程

操作系统
工具软件
上网冲浪
办公软件
平面设计
注册表
经验技巧
硬件相关
Frontpage
Flash
Dreamweaver
Fireworks
JavaScript
HtmlCss
ASP教程
JSP教程
PHP教程
.NET教程
服务器技术
数据库
XML技术教程

本类阅读TOP10

·身份证校验算法与ASP程序
·ASP如何获取真实IP地址
·教你1小时里搞定ASP
·新手初练:用ASP做一个域名查询系统
·ASP 编程中 20 个非常有用的例子——适合初学者
·常用代码集锦(ASP)
·1栏分页显示(附显示的形式[1][2]),此程序可直接套用
·一个可以读取ID3信息的类[可以很方便添加MP3了]
·ASP字数计算函数--Wordcount()
·ASP初学者常犯的几个错误

广告




广告服务---修复IE---深圳160黄页信息---深圳企业信用查询---联系我们

深圳汇深网信息科技有限公司 版权所有 2004-2005 ICP证:粤B2-20040803