前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C# 二代身份证验证 / VerifyIDCard[通俗易懂]

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

作者头像
全栈程序员站长
发布2022-09-14 14:15:49
7310
发布2022-09-14 14:15:49
举报
文章被收录于专栏:全栈程序员必看

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

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

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

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

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

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

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

份证合法性”、

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

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

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

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

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

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

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

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

码”是否合法

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

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

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

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

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

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

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

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

示例代码:

代码语言:javascript
复制
Console.WriteLine(VerifyIDCard("510129199705303706"));

验证代码:

代码语言:javascript
复制
        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.cn/153662.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档