文字排版
⏱️ 阅读约 3 分钟 · 更新于 2026-09-15
二代身份证号码规则与校验码计算:GB11643标准算法与合法性验证
🛠️ 本教程配套在线工具:若邻助手 · 身份证合规校验
纯浏览器本地安全运行,无需上传第三方服务器,100% 保护数据隐私与安全。
核心概要:开发系统表单验证时,如何防范假身份证号输入?第 18 位数字为什么经常是罗马字母 X?本文带您揭秘我国 18 位公民身份号码背后的严谨密码学与行政区划编码。
📋 图文实操步骤指南
1
输入 18 位身份证号码进行合法性校验
打开若邻助手【身份证合规校验】工具,输入待检测的身份证号码,系统自动校验格式与模 11 校验位。
💡 提示:支持输入前 17 位,由工具自动逆向推导并计算出第 18 位正确的校验码。
2
查看行政区划、出生年月与性别解析
工具自动根据民政部行政区划库解析出:户籍归属省市县区、出生年月日、当前实足年龄、生肖与星座,并根据第 17 位奇偶判断性别。
💡 提示:第 17 位奇数为男性,偶数为女性。
3
纯前端私密解析,绝不上传数据
全过程纯在浏览器 JavaScript 内存中按国标数学公式计算,不调用公安部外部接口,不留存任何用户隐私记录,放心用于业务测试。
💡 提示:支持开发人员测试专用的合规虚拟测试号码批量生成。
二代身份证 18 位数字的完整构成解构
依照《GB 11643-1999 公民身份号码》国家标准,18 位号码由四部分组成:1. 前 6 位为地址码(对应各省、市、县区行政代码);2. 第 7~14 位为出生日期码(YYYYMMDD 格式);3. 第 15~17 位为顺序码(同一地址码同一天出生的人员编制号,其中第 17 位奇数分配给男性,偶数分配给女性);4. 第 18 位为校验码。
ISO 7064:1983.MOD 11-2 校验位计算全过程详解
校验码的计算公式为:将前 17 位数字分别乘以对应的权重因子 Wi(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)并累加求和得 S;用 S 除以 11 取余数 R;根据余数查找对应校验码表:0->1, 1->0, 2->X, 3->9, 4->8, 5->7, 6->6, 7->5, 8->4, 9->3, 10->2。如果余数是 2,为了避免两位数 10 破坏 18 位固定长度,国标规定使用罗马数字 X 代替。
❓ 常见问题解答 (FAQ)
身份证最后一位如果是 X,在系统输入时必须大写吗?
必须是大写字母 X!因为在罗马数字中,大写 X 代表十(10)。若输入小写 x,部分银行或政务系统后台严格比对时会直接报错无效格式。
校验码正确就代表这个身份证号在现实中一定真实存在吗?
不一定。通过校验码计算只能证明该号码符合国家编码数学逻辑、出生日期真实且行政区划有效,但要确认现实中是否有人登记,仍需在公安部权威户籍数据库中核实。
行政区划撤县设区后,老身份证号码会改变吗?
不会。根据国家政策,公民身份号码一经编制便终身不变。即便出生地后来撤县改区,个人旧身份证号的前 6 位地址码依然永久保留历史原始编码。