分享身份证号码有效性校验的实现


placeholder image
admin 发布于:2015-06-16 14:18:19
阅读:loading

还是去年的那个时候,接着组织机构代码验证规则之后,做的是一个身份证号码有效性验证的程序,本着对程序严谨的态度,分别对15位和18位的身份证号的验证都提供了实现。身份证号现在是18位的,以往有15位的身份证号,分别简单的所一下它们的编号规则:

18位身份证号码的生成规则

       从左到右依次为:6位数字地址码,8位出生日期年月日,3位顺序递增数字,加1位校验码,用字母表示为:ABCDEFYYYYMMDDXXXR。

       1)6位地址ABCDEF表示:省、市、县的行政区划代码,也就是说如果知道了你的身份证号码就能知道你户籍所在地的县。

       2)8位出生日期YYYYMMDD:出生日期很好理解,如果月、日小于10,则在十位数上补0,凑足两位数。

       3)3位地址数字XXX:指同一地址所在的范围内的同年、同月、同日的所有人编订的顺序号,其中这个3位数的末位,也就是各位数基数分配给男,偶数分配给女(也就是说身份证号的倒数第二位数基数表示性别为男,偶数表示性别为女)。

       4)1位校验码R:身份证号码的前17位数字采用ISO 7064:1983,MOD 11-2 校验计算得出。

15位身份证号码的生成规则

       从左到右依次为:6位数字地址码,6位出生日期年月日,3位递增数字,用字母表示为:ABCDEFYYMMDDXXX。

       1)6位地址与18位的规则意义有所不同。

       2)出生日期的年只有两位数,如1999-01-01的生日则表示为990101。

       3)老外拿的中国永久居住卡也是15位号码;

       详细介绍参考地址:http://wenku.baidu.com/view/60217cea5ef7ba0d4a733bb2.html

       相对于组织机构代码来说,身份证号码的校验网上太多了,传一份儿代码到附件吧。

附件下载

ValidateIDCard.zip


 点赞


 发表评论

当前回复:作者

 评论列表


留言区