用VB.NET实现身份证号码升位算法

时间:2022-10-28 03:07:42

用VB.NET实现身份证号码升位算法

摘要:根据〖中华人民共和国国家标准GB 11643-1999〗中有关公民身份号码的规定,针对编译环境,本文用实现身份证号码升位算法。

关键词:;身份证;算法

中图分类号:TP311 文献标识码:A 文章编号:1007-9599 (2011) 18-0000-01

Using to Achieve ID Number Digit Algorithm

Lin Liyun

(Jilin Business and Technology College,Changchun 130062,China)

Abstract:According to Chinese National Standard GB 11643-1999〖〗number in the citizenship requirement for compiler environment,to achieve this using l-bit ID number algorithm.

Keywords:;ID;Algorithm

身份证号码升位的目的主要在于防范“千年虫”;且第二代身份证只是在制作工艺上作了改进,身份证传递的内在信息本身并未发生改变。

根据〖中华人民共和国国家标准GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。前1、2位数字表示:所在省份的代码;第3、4位数字表示:所在城市的代码;第5、6位数字表示:所在区县的代码;生日期码表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。第7~14位数字表示:出生年、月、日;顺序码表示同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。顺序码的奇数分给男性,偶数分给女性。第15、16位数字表示:所在地的派出所的代码;第17位数字表示性别:奇数表示男性,偶数表示女性;校验码是也有的说是个人信息码,主要为了校验计算机输入公民身份号码前17位数字是否正确。其最的作用在于避免身份证号码重复。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。

计算校验码的算法:

一、十七位数字本体码加权求和公式

S=Sum(Ai*Wi),i=0,...,16,先对前17位数字的权求和

Ai:表示第i位置上的身份证号码数字值

Wi:表示第i位置上的加权因子

Wi:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

二、计算模

Y=mod(S,11)

三、通过模得到对应的校验码

Y:0 1 2 3 4 5 6 7 8 9 10

校验码:1 0 X 9 8 7 6 5 4 3 2

实现算法代码如下:

Private Function getCheckCode(ByVal SFZH As String)As String

Dim strJiaoYan()As Char={"1","0","X","9","8","7","6","5","4","3","2"}

Dim intQuan()As Integer={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1}

Dim strTemp As String

Dim intTemp As String

Dim i As Integer

strTemp=SFZH.Substring(0,6)&"19"&SFZH.Substring(6)

For i=0 To strTemp.Length-1

intTemp=intTemp+Convert.ToInt32(strTemp.Substring(i,1))*intQuan(i)

Next

intTemp=intTemp Mod 11

Return strTemp&strJiaoYan(intTemp)

End Function

参考文献:

[1]罗朝盛.Visual Basic 6.0程序设计基础教程.2005

[2]谭浩强.Visual Basic程序设计.2006

上一篇:基于PB的教学培养方案核定系统的设计与实现 下一篇:崇遵高速公路红花岗隧道施工综述