`
dcdc723
  • 浏览: 187415 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

身份证验证类

 
阅读更多
/// <summary>
        /// 验证位身份证
        /// </summary>
        /// <param name="Id">身份证号码</param>
        /// <returns>是否真实身份证</returns>
//返回true符合验证的标准,反之则非法;
        private bool CheckIDCard(string Id)
        {
            int intLen = Id.Length;
            long n = 0;

            if (intLen == 18)
            {
            if (long.TryParse(Id.Remove(17), out n) == false || n < Math.Pow(10, 16) || long.TryParse(Id.Replace('x', '0').Replace('X', '0'), out n) == false)
            {
                return false;//数字验证
            }
            string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
            if (address.IndexOf(Id.Remove(2)) == -1)
            {
                return false;//省份验证
            }
            string birth = Id.Substring(6, 8).Insert(6, "-").Insert(4, "-");
            DateTime time = new DateTime();
            if (DateTime.TryParse(birth, out time) == false)
            {
                return false;//生日验证
            }
            string[] arrVarifyCode = ("1,0,x,9,8,7,6,5,4,3,2").Split(',');
            string[] Wi = ("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(',');
            char[] Ai = Id.Remove(17).ToCharArray();
            int sum = 0;
            for (int i = 0; i < 17; i++)
            {
                sum += int.Parse(Wi[i]) * int.Parse(Ai[i].ToString());
            }
            int y = -1;
            Math.DivRem(sum, 11, out y);
            if (arrVarifyCode[y] != Id.Substring(17, 1).ToLower())
            {
                return false;//校验码验证
            }
            return true;//符合GB11643-1999标准
            }
            else if (intLen == 15)
            {
                if (long.TryParse(Id, out n) == false || n < Math.Pow(10, 14))
                {
                    return false;//数字验证
                }
                string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
                if (address.IndexOf(Id.Remove(2)) == -1)
                {
                    return false;//省份验证
                }
                string birth = Id.Substring(6, 6).Insert(4, "-").Insert(2, "-");
                DateTime time = new DateTime();
                if (DateTime.TryParse(birth, out time) == false)
                {
                    return false;//生日验证
                }
                return true;//符合15位身份证标准
            }
            else
            {
                return false;//位数不对
            }
        }
 

 

分享到:
评论

相关推荐

    C# 身份证 验证类 DLL 带源码

    这个"C# 身份证验证类 DLL 带源码"是一个专门用于验证中国公民身份证合法性的开发工具,它可以帮助开发者快速集成到自己的应用程序中,进行有效的身份验证。以下是关于这个DLL及其源码的详细知识点: 1. **C#编程...

    php身份证验证类

    php身份证验证类,可用于验证身份证格式是否正确,星座,属向,男女,是否成年等。

    新中新第二代身份证验证系统

    新中新第二代身份证验证系统结构紧凑、操作简便,可广泛应用于公安、民政、银行、宾馆、民航、邮局、证券、超市、网吧等部门或行业的窗口、柜台。新中新第二代身份证阅读器随机软件功能齐全、界面简洁美观、操作简便...

    C#身份证验证器

    在IT行业中,身份证验证器是一种常见的实用工具,主要用于验证个人身份证号码的合法性,并根据有效身份证号码解析出对应的身份信息,如出生日期、性别以及户籍所在地等。本项目以C#编程语言实现,提供了用户友好的...

    Eclipse Java写的身份证验证程序待指正

    - 定义身份证验证类:包含验证身份证号码的方法,如`validateIDCard()`。 - 构造函数:可能有构造函数用于初始化身份证号码对象。 - 类的封装:将身份证号码作为私有属性,提供getter和setter方法。 7. **异常...

    C#版身份证验证源码

    在C#中实现这些功能,可以创建一个身份证验证类,包含一个验证方法,接受18位身份证号码作为输入参数。通过方法内部的逻辑判断,先进行校验码验证,再解析地区代码、出生日期和性别信息。地区代码可以通过查询预定义...

    身份证验证器.zip

    对象实例化这个类,调用相应的方法来进行身份证验证。 8. **编译与部署**: 使用Visual Studio等IDE,开发者可以将源代码编译成可执行文件,并可能将其打包成安装程序,方便用户在不同计算机上安装和使用身份证验证...

    身份证验证工具类

    关于身份证验证的工具类,身份证号码验证 1、号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码 八位数字出生日期码,三位数字顺序码和一位数字...

    JS 身份证验证程序

    本文将深入探讨如何使用JavaScript进行身份证验证,包括有效性检查和区域信息识别。 身份证验证是确保用户输入的有效身份证号码的关键步骤,这对于很多需要用户身份验证的场景非常重要,如注册、实名认证等。在中国...

    sdtapi.dll居民身份证验证安全控制模块接口 API 使用手册.pdf

    这份《sdtapi.dll居民身份证验证安全控制模块接口API使用手册》详细介绍了如何使用广东东信智能科技有限公司提供的居民身份证验证安全控制模块接口API,版本号为*.*.*.*。以下是从手册内容中提炼出的IT知识点。 ###...

    C#身份证验证.txtC#身份证验证.txtC#身份证验证.txt

    根据给定的文件信息,我们可以总结出以下关于C#中身份证验证的知识点: ### C#身份证验证算法解析 #### 身份证结构 身份证号码在中国分为两种格式:15位和18位。 - **15位身份证**:由6位地区码、6位出生日期...

    身份证号码验证程序 javascript验证的html文件

    这个压缩包中的"身份证验证程序.html"文件是一个使用JavaScript编写的HTML页面,它用于验证输入的身份证号码是否合法。以下是对这个知识点的详细阐述: 1. **HTML(超文本标记语言)**:HTML是构建网页的基础,它...

    神思二代身份证验证机具接口函数说明

    神思二代身份证验证机具接口函数说明

    身份证验证器

    【身份证验证器】是一款用于身份证真伪查询的软件工具,主要功能是帮助用户验证中国居民身份证的合法性。在日常生活中,我们可能需要确认个人身份信息的真实性,例如在租房、招聘、网络交易等场合,该工具就能派上...

    神思二代身份证验证机具接口控件说明.pdf

    神思二代身份证验证机具接口控件说明.pdf

    注册身份证验证的js

    用于注册时验证身份证是否正确 可以支持验证真伪 根据验证省份

    身份证验证开发包

    在IT行业中,身份证验证是一项重要的安全措施,尤其在涉及到个人身份认证、实名制场景时。这个名为“身份证验证开发包”的工具专为验证第二代身份证设计,它可以帮助开发者读取身份证上的信息并处理相关图像,确保...

    js日期验证和身份证验证

    js日期验证和身份证验证 两个函数 身份证验证了生日,性别,位数 支持15和18位的

    身份证号规范验证

    此工具可验证身份证号是否符合身份证号规范,但不能验证身份证真假(仅对身份证号除前6位以外,进行规范验证)。

Global site tag (gtag.js) - Google Analytics