昨天项目要求将身份证做一次验证,于是总结了一下C/C++下身份证号码的实现

身份证号码的构成

资料显示,现在我国公民使用的18为身份证号码,是由前 17位信息码和最后一位校验码组成。而,前17为信息码,又有各自的含义:六位地址码,八位出生日期码,三位顺序码。地址码(身份证前六位)
       一。六位地址码
            前六位的地址码,是按照GB/T2260的规定,给常住户口所在县(市、旗、区)的行政区域分配的代码。
       二。出生日期码(身份证中8位)
             8为的出生日期,分别是 XXXX年XX月XX日
       三。顺序码 
             表示在同一地区,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。

身份证号的验证方法

校验码,是由前十七位数字码加权求和取模得到的数字,对应的校验码数组元素。

前17位数字码的权重分别是:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

其中,校验码数组为:1 0 X 9 8 7 6 5 4 3 2

至此,我们只需要将求出的校验码和身份证的第18位比较,即可知道该身份证号的正确与否。

MFC实现

bool CMy0121124829Dlg::SFZHValidate(CString sfz)
{int weight[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};char validate[]={ '1','0','X','9','8','7','6','5','4','3','2'};  int sum=0;int mode=0;if (sfz.GetLength()==18){for(int i=0;i<sfz.GetLength()-1;i++){sum=sum+(sfz[i]-'0')*weight[i];}mode=sum%11;if (validate[mode]==sfz[17]){return true;}}
 return false;
}

身份证号码验证--C/C++ 实现相关推荐

  1. javascript身份证号码验证函数支持带x

    //--身份证号码验证-支持新的带x身份证 function isIdCardNo(num)  {     var factorArr = new Array(7,9,10,5,8,4,2,1,6,3 ...

  2. 身份证号码验证-支持新的带x身份证

    //--身份证号码验证-支持新的带x身份证 function isIdCardNo(num)  {     var factorArr = new Array(7,9,10,5,8,4,2,1,6,3 ...

  3. C#实现身份证号码验证的方法

    本文实例讲述了C#实现身份证号码验证的方法.分享给大家供大家参考.具体实现方法如下: 随着现在互联网的发展,越来越多的注册用户的地方都用到了身份证,那么对于输入的身份证如何验证呢?看下面的代码,其实很 ...

  4. .net身份证号码验证

    using System; /// <summary>/// Summary description for IDCardValid/// </summary>public c ...

  5. 正则实现二代身份证号码验证详解

    Start 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 一: IdCodeValid:f ...

  6. 身份证号码验证——C语小程序言

    身份证号码验证--C语小程序言 #include <stdio.h> int main(){int a, b, num = 0, sum = 0;int arr[17] = {0};int ...

  7. java对台湾同胞身份证号码验证

    package com.yt.eos.common.enumclass;import org.apache.commons.lang3.StringUtils;/*** 台湾同胞身份证号码验证* @a ...

  8. 身份证号码验证(转)

    文章出处: http://dengo.org/archives/941 不少大的游戏注册时都要输入身份证号码,来限制未成年人,配合所谓的反沉迷系统,账号注册环节注重的是快捷,所以身份证验证都不是真实的 ...

  9. JS正则表达式-附身份证号码验证(简易版)

    文章目录 JS正则表达式 匹配与搜索 一.方括号,圆括号 二.修饰符 三.元字符 四.量词 身份证号码验证(简易版) 身份证号码规则: 1.地址码 2.年份码 3.月份码 4.日期码 5.顺序码 6. ...

  10. Android身份证号码验证

    最近用到身份证号码验证,在网上看了些资料,写了些方法记录下: 文章迁至:Java/Android通用身份证号验证 public class IDCardValidate {public static ...

最新文章

  1. 前 Google 工程师总结的算法面试指南
  2. golang ssh 远程登录执行命令
  3. mysql修改表和列
  4. 微信公众号平台开发-网页授权
  5. 【Spring注解系列11】Spring后置处理器BeanPostProcessor用法与原理
  6. hdu1174(3维射线与圆是否相交)
  7. 显示 grep 结果的指定行
  8. 圣诞海报模板|给设计师点灵感
  9. WSL2:docker中ubuntu18.04编译webRTC
  10. IE10、IE11 ASP.Net 网站无法写入Cookie 问题
  11. Xcode 快捷键大全 2020 - 持续更新
  12. Redis下载与安装教程
  13. JS方式获取浏览器版本
  14. Chrome浏览器模拟微信客户端访问网址,方法图文讲解模拟微信
  15. 数字系统设计(FPGA)课程设计: 多功能数字钟
  16. 关于Ubuntu20.04下向日葵远程软件连接中断的解决方法
  17. ★Sql Server 2012 数据库修复一般性错误修复
  18. Marvolo Gaunt's Ring 【CodeForces 855B】
  19. 移植 SOEM 到嵌入式平台 STM32F767
  20. android底层音频调试,Android音频底层调试-基于tinyalsa,使用中碰到问题

热门文章

  1. 软件测试需求标准 国标,国家标准 GBT 15532-2008 计算机软件测试规范(60页)-原创力文档...
  2. 【Windows】之搭建 Go 语言环境
  3. 【服务器数据恢复】RAID5多块硬盘离线但是热备盘未激活导致RAID崩溃的数据恢复案例
  4. 解析雅虎与百度流氓原理-IE劫持
  5. Canvas + CSS3实现可视化项目开场动画
  6. 东方程序员眼中的西方程序员是怎样的?
  7. 【自嗨笔记#2】微博疫情舆情分析---舆情分析部分
  8. 记录centos上 Probable fatal error: No physical fonts found问题解决过程
  9. 用墨刀进行简单的后台页面设计
  10. 2023最火批量getshell工具