仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 643|回复: 7
打印 上一主题 下一主题

[学习教程] ASP网站制作之一个18位身份证校验盘算函数

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:41:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。函数|函数因必要对15位旧身份证号码举行升位和校验、查询处置,又没有搜刮到现成的函数,因而本人写了一个复杂的历程,但愿可以帮得上必要的伴侣。
本函数的功效单一,只能校验第18位号码是不是准确大概获得第18位号码,其他功效留给人人本人扩大吧!

<%
Version:1.0.1
Author:sfply(sfply@163.com)
LastModified:2004/7/1712:03
Src是身份证号码,能够是15位也能够是18位,15位时只能前往考证码体例利用
iChk参数取值真假,真代表校验Src是不是18位身份证,而且校验第18位是不是准确号码而断定是不是无效身份证,前往只值为true或false
假代表前往准确的校验码,前往值为(1~x)
dimmyIdentify
myIdentify="36050219781218133?"

response.writechkIdentiyCard(myIdentify,false)

FunctionchkIdentiyCard(Src,iChk)
dimmyWi,myAi,mySrc(17),i,myCount
myAi="10X98765432"
myWi=split("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2",",")
ifiChkthen
iflen(Src)=18then
fori=0to16
mySrc(i)=mid(Src,i+1,1)
myCount=myCount+mySrc(i)*myWi(i)
next
ifmid(myAi,(mycountmod11)+1,1)=right(Src,1)then
chkIdentiyCard=true前往了局,TRUE为正当身份证考证码
else
chkIdentiyCard=false前往了局,FALSE为不法身份证考证码
endif
else
chkIdentiyCard=false由于不是18位身份证以是前往FALSE
endif
else
iflen(Src)=15orlen(Src)=18then
iflen(Src)=15thenSrc=mid(Src,1,6)&"19"&mid(Src,7,9)
fori=0to16
mySrc(i)=mid(Src,i+1,1)
myCount=myCount+mySrc(i)*myWi(i)
next
chkIdentiyCard=mid(myAi,(mycountmod11)+1,1)前往准确的考证码
else
chkIdentiyCard=false输出不不是15位或18位身份证号
endif
endif
EndFunction
%>

关于身份证第18是怎样盘算的,道理以下

依据〖中华国民共和国国度尺度GB11643-1999〗中有关国民身份号码的划定,国民身份号码是特性组合码,由十七位数字本体码和一名数字校验码构成。分列按次从左至右顺次为:六位数字地点码,八位数字出身日期码,三位数字按次码和一名数字校验码。

地点码暗示编码工具常住户口地点县(市、旗、区)的行政区划代码。诞辰期码暗示编码工具出身的年、月、日,个中年份用四位数字暗示,年、月、日之间不必分开符。按次码暗示统一地点码所标识的地区局限内,对同年、月、日出身的职员编定的按次号。按次码的奇数分给男性,偶数分给女性。校验码是依据后面十七位数字码,依照ISO7064:1983.MOD11-2校验码盘算出来的查验码。上面举例申明该盘算办法。

15位的身份证编码起首把出身年扩大为4位,复杂的就是增添一个19,可是这关于1900年出身的人不利用(如许的寿星未几了)

某男性国民身份号码本体码为34052419800101001,起首依照公式⑴盘算:

∑(ai×Wi)(mod11)……………………………………(1)

公式(1)中:
i----暗示号码字符从由至左包含校验码在内的地位序号;
ai----暗示第i地位上的号码字符值;
Wi----示第i地位上的加权因子,其数值根据公式Wi=2(n-1)(mod11)盘算得出。

i181716151413121110987654321

ai34052419800101001a1

Wi79105842163791058421

ai×Wi21360251616294800905002a1

依据公式(1)举行盘算:

∑(ai×Wi)=(21+36+0+25+16+16+2+9+48++0+0+9+0+5+0+0+2)=189

189÷11=17+2/11

∑(ai×Wi)(mod11)=2

然后依据盘算的了局,从上面的表中查出响应的校验码,个中X暗示盘算了局为10:

∑(ai×WI)(mod11)012345678910
校验码字符值ai10X98765432
依据上表,查出盘算了局为2的校验码为以是该职员的国民身份号码应当为34052419800101001X。

a[0]*7+a[1]*9+a[2]*10+a[3]*5+a[4]*8+a[5]*4+a[6]*2+a[7]*1+a[8]*6+a[9]*3
+a[10]*7+a[11]*9+a[12]*10+a[13]*5+a[14]*8+a[15]*4+a[16]*2
%11



</p>asp是基于web的一种编程技术,可以说是cgi的一种。它可以完成以往cgi程序的所有功能,如计数器、留言簿、公告板、聊天室等等。
沙发
发表于 2015-1-29 06:34:30 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
老尸 该用户已被删除
板凳
发表于 2015-2-5 20:51:38 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
再现理想 该用户已被删除
地板
发表于 2015-2-13 09:50:17 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
乐观 该用户已被删除
5#
发表于 2015-3-3 19:00:11 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
飘灵儿 该用户已被删除
6#
发表于 2015-3-11 12:25:15 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
透明 该用户已被删除
7#
发表于 2015-3-18 10:53:48 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
只想知道 该用户已被删除
8#
发表于 2015-3-25 18:26:56 | 只看该作者
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 13:34

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表