数据挖掘中的中国身份证结构解析

在数据挖掘中会遇到相同长度数字字串的类型区分问题,个人认为最好的解决方案就是了解各个类型数据的构词方法,从而对不同、甚至相同长度的数据进行解构区分。对于身份证而言,采用第十八位的校验码进行校验计算能够有效的达到区分效果。

1  首先说明一下中国身份证的组成结构。

1.1  第二代身份证(18位)和第一代身份证(15位)的构成

                                                            身份证构成
18位身份证身份证内容15位身份证
1-2位省、自治区、直辖市代码1-2位
3-4位地级市、盟、自治州代码3-4位
5-6位县、县级市、区代码5-6位
7-14位出生日期7-12位
15-17位顺序号13-15位
18位校验位null

1.2  第二代身份证与第一代身份证变化的几个地方

(1)出生日期

第二代身份证的出生日期由第一代身份证的XX/XX/XX的6位修改成XXXX/XX/XX的8位。

(2)顺序号

由于第二代身份证的出生日期补全到8位,所以顺序号也就由第一代身份证的13-15位顺延到了15-17位。

其中,需要注意的是,无论第一代还是第二代身份证,都是采用顺序号的最后一位(也就是第二代的17位和第一代的15位)标示着该名公民的性别。奇数就是男性,偶数就是女性。

(3)校验位

第二代身份证增加了第一代身份证中缺失的校验位。

2  第二代身份证校验位的计算方法

Step  1:

使用第二代身份证的前十七位计算(Value_i*Weight_i)的累和S。

其中,规定前十七位相应的权值如下表所示:

i1234567891011121314151617
Weight7910584216379105842

Step  2:

计算模M=MOD(S,11),即对累和S对11取余数。

Step  3:

根据计算的到的模M,对应标准规范的校验位对应表,取出相应的校验码K。

其中,标准规范的校验位对应表如下表所示:

M012345678910
K10X98765432

3  举例计算

3.1  求身份证号为440524188001010004K的第十八位校验位K

3.2  计算

计算过程对应下表所示

i1234567891011121314151617
Value_i44052418800101004
Weight_i7910584216379105842
Sumi28360251616284800905008
Sum195
然后的到 M = (195, 11) = 8,经查表的到,对应的K = 4

4  编码



版权声明:本文为weew_pp原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。