⾝份证号码的编码规则及校验
前⾔
根据最新修订的《中华⼈民共和国居民⾝份证法》第⼆⼗三条规定,依照《中华⼈民共和国居民⾝份证条例》领取的居民⾝份证,⾃2013年1⽉1⽇起停⽌使⽤。即⼀代⾝份证已于2013年1⽉1⽇起停⽌使⽤,本⽂内容适⽤于⼆代⾝份证,如⽆特殊说明,本⽂中所说的⾝份证皆指⼆代⾝份证。
htmlborder
笔者⽬前使⽤的jdk版本是1.6.0_29,Eclipse版本是Juno Release,Build id 20120614-1722。如⽆特殊说明,本⽂所有的Java代码都是基于此。
本⽂包含⼤量数学公式和Java代码,⼿机端浏览体验较差,可在⼿机端浏览⽂字性内容,数学公式和Java代码在PC端浏览,同时建议准备好纸、笔⽤于数学公式的演算。具有⼀定数学基础的读者也可以忽略此条建议。
本⽂中提供的Java代码都是笔者逐⾏编写、反复斟酌,以求能够抛砖引⽟,使初学者可以孜孜不倦,在Java的学习道路上更进⼀层楼。本⽂内容,不⾜之处,欢迎⼤家批评指正。
修订记录
版本号修订⽇期修订说明
V0.12018/08/13初稿
V1.02018/09/02发布
参考资料
1. 中华⼈民共和国居民⾝份证法
2. 中华⼈民共和国国家标准 GB/T 2260-2007 中华⼈民共和国⾏政区划代码
3. 中华⼈民共和国国家标准 GB 11643-1999 公民⾝份证号码
4. 中华⼈民共和国国家标准 GB/T 17710-1999 数据处理 校验码系统
5. 中华⼈民共和国国家标准 GB/T 17710-2008 信息技术 安全技术 校验字符系统
6. ISO 7064:1983 Data processing - Check character systems
7. ISO/IEC 7064:2003 Information technology - Security techniques - Check character systems
⾝份证号码的编码规则
⾝份证号码共18位,由17位本体码和1位校验码组成。
1. 前6位是地址码,表⽰登记户⼝时所在地的⾏政区划代码,依照《中华⼈民共和国⾏政区划代码》国家标准(GB/T2260)的规定执⾏;
2. 7到14位是出⽣年⽉⽇,采⽤YYYYMMDD格式;
3. 15到17位是顺序码,表⽰在同⼀地址码所标识的区域范围内,对同年、同⽉、同⽇出⽣的⼈编订的顺序号,顺序码的奇数分配给男性,偶数分
配给⼥性,即第17位奇数表⽰男性,偶数表⽰⼥性;
4. 第18位是校验码,采⽤ISO 7064:1983, MOD 11-2校验字符系统,计算规则下⼀章节说明。
⼀代⾝份证与⼆代⾝份证的区别在于:
1. ⼀代⾝份证是15位,⼆代⾝份证是18位;
2. ⼀代⾝份证出⽣年⽉⽇采⽤YYMMDD格式,⼆代⾝份证出⽣年⽉⽇采⽤YYYYMMDD格式;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。