身份证号码(18位)的编码逻辑遵循国家标准 GB 11643-1999《公民身份号码》,其结构设计承载了持有人的地域信息、出生日期、性别等信息,并通过校验码保证号码的合法性。以下是详细解析:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
└─────┬─────┘ └─────┬─────┘ └───┬───┘ └───┬───┘
地址码 出生日期码 顺序码 性别码 校验码
320106 → 江苏省(32)南京市(01)鼓楼区(06)。注意:地址码基于首次申领地,即使后续迁移户籍,号码仍保持不变。
YYYYMMDD(年4位 + 月2位 + 日2位)。19950418 → 1995年4月18日出生。 20000229 → 2000年2月29日(闰年有效)。特殊场景:
20000229)。 1, 3, 5, 7, 9 0, 2, 4, 6, 8317 → 当天第31位出生,且为男性(因17是奇数)。 102 → 当天第10位出生,且为女性(因2是偶数)。作用:通过算法验证前17位的合法性,防止输入错误或伪造。
生成算法(ISO 7064:1983 Mod 11-2):
Ai:第i位数字的值 Wi:权重因子(第i位对应2^(18-i) mod 11,具体为[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2])R = S mod 11 R映射校验码:示例:前17位为11010519491231002,计算得R=10,故校验码为X(罗马数字10)。
YYYYMMDD格式书写。 通过这一设计,身份证号码在有限位数内高效集成了关键身份信息,同时具备防伪能力。