兰色精灵 发表于 2015-1-16 23:41:04

ASP网站制作之一个18位身份证校验盘算函数

使用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*7+a*9+a*10+a*5+a*8+a*4+a*2+a*1+a*6+a*3
+a*7+a*9+a*10+a*5+a*8+a*4+a*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,从平时的学习过程中。

乐观 发表于 2015-3-3 19:00:11

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。

飘灵儿 发表于 2015-3-11 12:25:15

ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。

透明 发表于 2015-3-18 10:53:48

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

只想知道 发表于 2015-3-25 18:26:56

另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
页: [1]
查看完整版本: ASP网站制作之一个18位身份证校验盘算函数