Perl练习之验证身份证程序

这篇博客介绍了作者使用Perl编写的一个身份证验证程序,程序考虑了一代和二代身份证的差异,并实现了校验码的计算。作者通过白盒和黑盒测试验证了程序的效果。测试数据存储在文件中,每行包含一个身份证号和性别标识(0表示女,1表示男)。
摘要由CSDN通过智能技术生成

近来对Perl有点兴趣,就写了个小程序,刚好有软工作业,于是分别用白黑盒测试了下,效果还是不错的!!!以后写网页表单验证可以用到。


说明下,身份证分一代证15位与二代证18位,其中前六位地区码,(这个没有验证)18位多的就是年份是四位,15位的年份两位,前两位默认为“19”,18位的最后一位为校验码,具体算法请看程序,其中前17位每一位都有权值,算出总和后模11算出对应的校验码即可。

更多说明请Google之。。。

其中带#标记的是用来标记白盒测试路径点,不知道是否合理,但是,一个正则表达式就搞定很多情况啊!!!大笑


其中输入为,相信是看得懂的^_^

./cardValidate.pl -c [your id card number] -s [your sex]


#!/usr/bin/perl
use strict;
use Getopt::Long;

sub validate_birth{
    my ($year,$month,$day) = @_;
    if($year lt 1900 or $year gt 2011){#9 10
    	die "Bitrhday error year!\n";
    }
    if($month eq "0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值