身份证算法

简介:

公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。其含义如下:

1. 地址码:表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。

2. 出生日期码:表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位、2位数字表示,之间不用分隔符。

3. 顺序码:表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。

校验的计算方式:

1. 对前17位数字本体码加权求和
公式为:S = Sum(Ai * Wi), i = 0, ... , 16
其中Ai表示第i位置上的身份证号码数字值,Wi表示第i位置上的加权因子,其各位对应的值依次为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

2. 以11对计算结果取模
Y = mod(S, 11)

3. 根据模的值得到对应的校验码
对应关系为:
Y值: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2



本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2009/12/02/1615623.html,如需转载请自行联系原作者 
相关文章
解密身份证号,and 身份证与姓名认证。
解密身份证号,and 身份证与姓名认证。
通过身份证号码判断是否已成年
通过身份证号码判断是否已成年
195 0
身份证实名认证查询
实名认证查询是一种通过提供身份证号码、姓名等个人信息,获取对应身份信息的查询方式。它在日常生活中被广泛使用,如开通银行账户、购买手机卡等。实名认证查询的核心意义在于保护个人信息安全,同时保障社会公序良俗。本文将从实名认证查询的意义、流程及注意事项等方面进行阐述和探讨。
|
API 数据库
身份证实名认证接口验证不一致的原因
身份证是每个公民最常用的身份证明,随着当今互联网的快速发展,日常生活中越来越多的场景需要进行身份核验,以身份证实名认证为基础的网络实名制也引起了各行业的关注,随着实名制认证应用情景的多元化,众多网络平台对实名制验证机制的要求也越发严格。
615 0
身份证实名认证接口验证不一致的原因
|
存储 文字识别 小程序
小程序识别身份证,银行卡,营业执照,驾照
小程序识别身份证,银行卡,营业执照,驾照
127 0
|
存储 文字识别 小程序
小程序识别身份证 银行卡 营业执照 驾照 小程序OCR图片识别
小程序识别身份证 银行卡 营业执照 驾照 小程序OCR图片识别
186 0
|
数据采集
详细教程:使用【阿里云-身份证实名认证接口】服务进行身份证二要素实名认证核验
如今随着互联网产业的多元化发展,尤其是互联网金融,O2O,共享经济等新兴商业形式的兴起,企业对实名认证业务的数据形式和数据质量有了更高的需求。如今也衍生出身份证实名认证接口业务,通过接口将身份证号码、姓名上传至阿里云,再与全国公民身份信息系统进行匹配,判断信息的一致性。
3304 0
详细教程:使用【阿里云-身份证实名认证接口】服务进行身份证二要素实名认证核验
|
Java
Java实现身份证号码验证
整理文档时,搜刮出一个Java实现身份证号码验证源码示例代码,稍微整理精简了一下分享给大家。
440 0
|
Web App开发 JavaScript

热门文章

最新文章