身份证号校验

校验身份证号并解析生日、性别、地区。

什么是身份证号校验?

身份证号校验工具用于校验中国大陆 18 位居民身份证号码的格式是否合法,并从号码中解析出对应的行政区划代码、出生日期、性别等信息。 18 位身份证号结构为:前 6 位是地址码(对应省市区县的行政区划代码)、接下来 8 位是出生日期码(格式 YYYYMMDD)、再接 3 位是顺序码(第 17 位的奇偶性代表性别,奇数为男性、偶数为女性)、最后 1 位是校验码,按照 ISO 7064:1983.MOD 11-2 校验算法,用前 17 位加权求和后取模计算得出,用于校验号码本身是否输入错误。

为什么使用身份证号校验?

在做用户实名信息表单校验、财务开票、批量数据清洗时,经常需要快速判断一批身份证号是否格式合法,或从号码里提取出生日期辅助计算年龄、性别用于统计报表。手工校验校验码需要记住加权因子表和取模规则,容易出错,这个工具直接给出校验结果和拆解字段。 需要强调的是,这只是纯粹的格式与算法层面校验(长度、地址码是否在已知区划表内、出生日期是否合法、校验位计算是否正确),并不能确认这个号码对应的人是否真实存在、是否与姓名匹配,真正的实名核验需要对接公安部或第三方权威实名认证接口。

使用示例

校验一个合法号码并解析信息

输入一个格式合法的 18 位号码(示例格式,非真实号码),校验通过后解析出:地区码对应的省市区县、出生日期、以及根据第 17 位奇偶性得出的性别;当计算出的校验值为 2 时,最后一位校验码固定用大写字母 X 表示。

识别校验码错误的号码

把一个合法号码的最后一位手动改错后再校验,工具会提示校验码不匹配,说明这串号码很可能是输入错误或被随意编造,而不是真实分配的号码。

识别不存在的出生日期

输入出生日期部分为 19900230(2 月没有 30 号)的号码,工具会提示出生日期不合法,因为即便校验码算法凑巧通过,日期本身不存在也能判定这不是一个真实号码。

使用提示

地址码对应的行政区划会随行政调整而变化(撤县设区、区划合并等),本工具展示的地区名称基于公开的区划代码表,个别历史区划代码可能因调整而显示为该地区已变更或无法识别,属于正常现象,不影响校验码本身的计算结果。

常见问题

身份证号校验位是怎么算的?
前 17 位数字分别乘以固定权重 [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] 后求和,对 11 取余,按对照表得到校验码(0-9 或 X),与第 18 位比对即可验证是否合法。
能查到具体到县的地址吗?
本工具仅内置省级行政区代码表(前 2 位),可识别省/直辖市/自治区,完整的市、县级地址需要更详细的行政区划码表,暂未内置。
数据会上传吗?
不会。校验与解析全部在浏览器本地用 JavaScript 计算完成,不发起任何网络请求。
校验通过就说明这个身份证真实存在吗?
不能,本工具只做号码自身的格式与算法校验(结构、日期合法性、校验码是否正确),无法判断这个号码是否被公安系统实际签发、是否与某个真实人员对应,真实性核验需要用官方实名认证接口。
能识别第几代身份证(15位还是18位)吗?
目前只支持 18 位身份证校验,15 位老版身份证号码已经在升位换发多年,如果拿到 15 位号码需要先按规则换算成 18 位(补入世纪码并重新计算校验码)才能用本工具校验。
15位转18位的规则是什么?
简单说是在出生年份前补上19(因为老身份证默认是20世纪出生),再按 18 位算法重新计算最后一位校验码,本工具当前不含这一转换功能。
输入的号码会被上传或保存吗?
不会,所有校验和解析计算都在浏览器本地完成,不会把身份证号发送到任何服务器,可以放心用于批量核对,但仍建议不要在公共电脑或他人设备上输入真实身份证信息。

相关工具

← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。