身份证具有明显的代表唯一性,通过身份证号可以获取到哪些信息?社保在校验添加缴费人信息时,需要根据输入的身份证号获取信息,格式验证通过后将获取到的信息填充。这就需要了解一些规格。

现在新一代的身份证居多,这里以18位的新身份证为例,第十五位到十七位(也可理解判断倒数第二位的奇偶数)是奇数为男,偶数为女。(不信可以查看自己的身份证号核实)

前六位:是第一次领取民身份证时的常住户口所在县(市、旗、区)的行政区划代码。(所有区域的编码可以到这个网站http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201703/t20170310_1471429.html查询到最新的县及县以上的行政编码资料。)首先前两位代码省份:11——北京 12——天津 13——河北 14——山西 15——内蒙古自治区 另四位代表你户口所在的市县。

第七位到第十四位表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。

第十五为到十七位:判断性别的神数字。奇数为男性,偶数为女性。

最后一位 :是根据前面十七位数字码,按照ISO7064:1983.MOD11-2校验码计算出来的检验码(通常是 1,0,x,9,8,7,6,5,4,3,2)。

代码:

public static bool CheckChinaIDCardNumberFormat(string idCardNumber){string idNumber = idCardNumber;bool result = true;try{if (idNumber.Length != 18){return false;}long n = 0;if (long.TryParse(idNumber.Remove(17), out n) == false|| n < Math.Pow(10, 16) || long.TryParse(idNumber.Replace('x', '0').Replace('X', '0'), out n) == false){return false;//数字验证  }string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";if (address.IndexOf(idNumber.Remove(2)) == -1){return false;//省份验证  }string birth = idNumber.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 = idNumber.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] != idNumber.Substring(17, 1).ToLower()){return false;//校验码验证  }return true;//符合GB11643-1999标准 }catch (Exception ex){logger.Error("CheckChinaIDCardNumber 身份证校验失败  号码:" + idNumber, ex);result = false;}return result;      } 
      /// <summary>/// 获取性别   -1 出错  0男  1女/// </summary>/// <param name="idCardNumber"></param>/// <returns></returns>public static int GetSexFromChinaIDCardNumber(string idCardNumber){int sex = -1;try{string sexStr = idCardNumber.Substring(14, 3);if (int.Parse(sexStr) % 2 == 0){return SexEnum.Female;//1;}else{return SexEnum.Man; ;}}catch (Exception ex){logger.Error("GetSexFromChinaIDCardNumber 通过身份证获取性别失败:" + idCardNumber, ex);}return sex;}




												

【学习】身份证号获取个人信息相关推荐

  1. 通过身份证号获取个人信息(JAVA代码)

    通过身份证号获取个人信息(JAVA代码) 个人思路 如果有错误,欢迎留言 代码 个人思路 文档下载地址: 身份证对应省区 1.首先对身份证进行输入 对身份证信息进行匹配看是否符合身份证规则,我是利用正 ...

  2. 根据身份证号获取相关信息(籍贯、性别、出生日期...)

    根据身份证号获取相关信息(籍贯.性别.出生日期-) 首先我的只是个demo,身份证号也是写死的.仅供参考! 通过访问其他HTTP接口,将身份证号当作参数.调用接口返回相关信息 效果展示: **接口地址 ...

  3. 利用身份证号获取生日信息

    1 问题 如何利用Java程序从身份证号中获取生日信息. 2 方法 采用"截图+文字+代码"的方式描述. //调用函数获取当前日期以及截取身份证号码中的数字 import java ...

  4. 根据身份证号获取个人信息的类

    public Hashtable GetResult()         {             areaInfo.Add("110000", "北京市") ...

  5. js脚本根据身份证号获取性别、年龄、家庭地址、生日

    做项目测试时需要根据身份证号获取其信息,也不想调接口,就自己在本地通过收集资料整合了一个 当身份证号的焦点失去选中后,根据身份证号获取性别.年龄.家庭地址.生日 直接上代码: index.html & ...

  6. 根据身份证号获取信息

    1.根据身份证号获取年龄 export function analyzeIDCard(IDCard){let age = 0,yearBirth,monthBirth,dayBirth;//获取用户身 ...

  7. Python获取磁盘使用信息,python获取GPU信息,python根据进程号获取进程信息,pynvml 获取GPU信息,psutil 获取进程信息,系统信息等

    一.工具:psutil模块 psutil是一个跨平台模块,试用相应方法可以直接获取计算机CPU,内存,磁盘,网络等资源使用情况:可以使用我们学习知识与这模块用来做系统监控,性能分析:如果大家熟悉Lin ...

  8. 【uniapp】根据身份证号获取生日日期

    根据身份证号获取生日日期 传入身份证号获取生日日期 getBirthday = idCard => {var birthday = "";if (idCard != null ...

  9. HTML身份证号校验及根据身份证号获取出生日期/性别

    一.HTML的方法都写在js里 若HTML.JS.CSS在一个HTML文件中,在HTML中使用HTML需要借助<scirpt>标签,使用<script>标签的方式有两种: 一种 ...

最新文章

  1. 【Python学习系列十七】基于scikit-learn库逻辑回归训练模型(delta比赛代码2)
  2. Android8.0适配方案
  3. 最简单的基于FFmpeg的AVfilter的例子-修正版
  4. 测试硬盘读写速度软件_Linux 测试 IO 性能(磁盘读写速度)
  5. cks32和stm32_cks子,间谍,局部Mo子和短管
  6. 首页 系统相关 正文 小米手机远程和电脑互相连接及控制的方法
  7. 探索私有云OpenStack管理选项
  8. IEEE 你吃透了吗?
  9. 计算机网络安全技术期末试题,归纳计算机网络安全技术期末复习试题 doc
  10. C++中this与*this的区别
  11. 编译udf小软件(附视频教程)
  12. RHCE(三、四)NTP时间服务器、SSH远程加密登录
  13. Python标记函数或类为废弃(deprecated)并在Pychram或Idea中检测提示删除线
  14. 采购申请PR和采购订单PO的关系
  15. 你尿尿的时长是不是21秒?2次登上Nature封面的他,靠研究拉尿获得“诺贝尔奖”.........
  16. java邮箱验证码_Java实现邮箱验证码
  17. stream().filter匹配过滤总结
  18. 第三届云计算大会 - 华为李三琦:云计算发展与华为运战略(转载)
  19. 无懈可击 Android 内部升级
  20. 简易电商宝贝放大镜效果--jQuery

热门文章

  1. 《问题背后的背后》一书 读后感(一)
  2. Microsoft Office Word、Excel 和 PowerPoint 2007 文件格式兼容包(简体中文)
  3. 数据库查询优化的方式
  4. 关于unicode编码
  5. 在区块链内容平台中,我为什么看好区分?
  6. 异步传输中的批量发送问题
  7. java.util.ConcurrentModificationException: null异常由for增强循环嵌套增删引起。
  8. Highcharts翻译系列十二:gauge测量图
  9. 2010年南非世界杯八强冠亚军大预测(2010年6月28日)
  10. 全国113个城市空气质量的K均值聚类分析--基于R