C# 二代身份证验证 / VerifyIDCard[通俗易懂]

C# 二代身份证验证 / VerifyIDCard[通俗易懂]由于现在社会技术的发展,需要验证身份证的合法性越发重要那么我们如何去验证一个身份证是否合法呢?我在以前的时候,特意写过一篇VB.NET查询身份证信息当然它是通过“百度身份证信息查询”的REST接口编写的一个类,当然那个时候并不考虑通过“身份证验证算法”识别身份证是否有效,注意VB.NET的主题是“查询身份证信息”而不是“验证身份证合法性”、我们以上面的“身份

大家好,又见面了,我是你们的朋友全栈君。

由于现在社会技术的发展,需要验证身份证的合法性越发重要

那么我们如何去验证一个身份证是否合法呢?

我在以前的时候,特意写过一篇VB.NET 查询身份证信息

它是通过“百度身份证信息查询”的REST接口 编写的一个类,

然那个时候并不考虑通过“身份证验证算法”识别身份证是否

有效,注意VB.NET的主题是“查询身份证信息”而不是“验证身

合法”、

C# 二代身份证验证 / VerifyIDCard[通俗易懂]

我们以上面的“身份证号码”为例,当然这是我通过算法生

成的、如果需要理解“身份证号码验证的合法性”算法 那么

须要清楚知道 它是如何去验证的、

身份证号码“第十八位”是整个“身份证验证”流程的核心、

身份证“前十七位”与“规定乘积”后的值相加,最后通过一

规律“序列值”与身份证号码“第十八位”比较,相同合法、

那么我们以上面的“身份证号码”为例,手动计算“身份证号

是否合法

C# 二代身份证验证 / VerifyIDCard[通俗易懂]

从上图中可以看到“510129199705303706”手动校验是

合法的、同时可以知道这是个刚满18不久的小妹妹、

当然你或许会疑惑为什么“校验码”会是6呢?那么我把“

验码”发出来你可能就明白了、

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

索引从“0”开始,这是基本常识 数到“索引6”的位置刚好

是“校验码”为6,所以这身份证号码 毫无疑问是合法的

示例代码:

Console.WriteLine(VerifyIDCard("510129199705303706"));

验证代码:

        public static bool VerifyIDCard(string IDCard)
        {
            int VerifyResult = 0;
            int[] VerifyValue = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
            for (int i = 0; i < 17; i++)
                VerifyResult = (VerifyValue[i] * (IDCard[i] - 48)) + VerifyResult;
            return (("10X98765432")[VerifyResult % 11] == IDCard[17]);
        }

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153662.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 二进制减法运算算法,基本逻辑实现法_二进制减法法则

    二进制减法运算算法,基本逻辑实现法_二进制减法法则今天捣鼓机器数的表示与运算,觉着能用加法进行减法的模拟运算,那么自然能用减法表示加法的运算。接着,在草稿纸上模拟了一下二进制的减法运算。很粗糙,限于时间原因,还没有把全部情况模拟完。核心规则是通过简单的或、与、异或运算与循环借位进行二进制数的减法。以后来补坑..学而不思则罔,思而不学则殆。…

    2022年9月24日
    2
  • 瀑布式研发流程

    瀑布式研发流程

    2022年6月17日
    27
  • 认识设备树(二)——设备树文件的格式

    认识设备树(二)——设备树文件的格式目录1DTS文件的格式1.1DTS文件的总体布局1.2memoryreservations的格式1.3属性的格式1.3.1有关属性名1.3.2有关属性值1.4节点的格式1.4.1推荐的节点名1.4.2节点的路径名1.5一些特定的属性1.5.1#address-cells1.5.2#size-cells1.5.3compatible1.5.4model1.5.5phandle1.5.6interrupt-controller1.5.7interrupt-parent1.5.

    2022年6月20日
    30
  • 经典vbs代码收集「建议收藏」

    经典vbs代码收集「建议收藏」经典vbs代码收集2011年01月17日  经典的vbs代码,收集起来也为了以后学习。  VBS脚本用途很多:  1.计算  2.处理文件和文件夹  3.管理Windows  4.处理Word,Excel,PowerPoint等Office文档  5.嵌入网页,驱动dHTML  6.编写HTTP通信  7.调用系统功能…

    2022年5月18日
    60
  • ffmpeg添加视频封面_ffmpeg提取波形文件

    ffmpeg添加视频封面_ffmpeg提取波形文件ffmpeg-ia.mp4-y-fimage2-frames1a.jpgffmpeg-i11.mp4-vframes1xx.jpgffmpeg-ia.mp4-r0.1frames_%04.pngconvert-backgroundwhite-flatten***.pdf***.png

    2025年6月14日
    1
  • elasticsearch集群搭建对服务器硬件_elasticsearch开发

    elasticsearch集群搭建对服务器硬件_elasticsearch开发elasticsearchARM架构集群搭建一、搭建环境搭建服务器IP环境es版本号路径20.10.0.xxCentOSLinuxrelease7.9.2009(AltArch)elasticsearch-7.13.1-aarch64./data/elsticsearch/*20.10.0.xxCentOSLinuxrelease7.9.2009(AltArch)elasticsearch-7.13.1-aarch64/data/elstics

    2022年10月13日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号