要校验身份证号码是否合法,那么首先应该知道身份证号码是如何得出的。
身份证号
区位代码6位+出生日期8位+随机码3位(男性奇数,女性偶数)+校验码1位,共计18位。
①身份证号码所在位:
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
代号 | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q |
②对应相乘位码:
乘位码 | 7 | 9 | 10 | 5 | 8 | 4 | 2 | 1 | 6 | 3 | 7 | 9 | 10 | 5 | 8 | 4 | 2 |
---|
③乘积之和:
7a + 9b + 10c + 5d + 8e + 4f + 2g + 1h + 6i + 3j + 7k + 9l + 10m + 5n + 8o + 4p + 2q
④除以11的余数:
余数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
校验码 | 1 | 0 | X | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
信息校验
检查生日信息是否是合法的日期,合法日期必须为当前时间之前的日期含当天
区位码校验
查询区位码是否在区位码表中,如果没有,则可能是历史编码或者无效编码
校验位检查
根据以上计算规则,计算校验位并与实际信息对比,只有相同才是有效的号码。
本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:Yiiven https://cloud.tencent.com/developer/article/2193226