身份证号码规则

身份证规则示例

地址码

省份码

华北 北京 天津 河北 山西 内蒙
编码 11 12 13 14 15
东北 辽宁 吉林 黑龙江
编码 21 22 23
华东 上海 江苏 浙江 安徽 福建 江西 山东
编码 31 32 33 34 35 36 37
华中/华南 河南 湖北 湖南 广东 广西 海南
编码 41 42 43 44 45 46
西南 重庆 四川 贵州 云南 西藏
编码 50 51 52 53 54
西北 陕西 甘肃 青海 宁夏 新疆
编码 61 62 63 64 65
台湾 台湾
编码 71
港澳 香港 澳门
编码 81 82

区县码

每个城市有100个区号可用

  • 01~20 代表市辖区,县级市等
  • 21-80 代表县,旗林区等
  • 81~99 代表省辖县级市

顺序码

表示同一地址码范围内,出生人编订的顺序号,奇数分给男性,偶数分给女性

  • 3位顺序码最多容纳1000人,500男,500女。举例编号005的男性其前面有2个出生,分别是001,003。
  • 超出500男/女则分不到合法的身份号码。这个问题概率很低。根据我国人口现状,历年人口统计,单区县一天出生人口达不到500个单性
    • 疫情前2018中国每天出生人口4.17w左右,全国有1347个县级行政单位,那么平均下来,同日出生的新生儿数量约为31人。(历史人口出生最高峰是1963年的全国2959.3w,也只是 18 年的 2 倍不到)
    • 北京市20 年一年新生儿数量(户籍人口)是10万,平均到每一天才273人,更别说单独一个区县了
    • 实在当天不够用,编码生日提前一天或者延后一天,没多大影响的;或强行分配到邻区去占配额
    • 太多人口的区县则要单独建市改行政区划了,一个城市有 100 个区号可用,一个城市的每一天可以最大容纳:100x1000=10万新生人口。即便是我国的超一线城市:北京上海,也不可能出现一天出生十万人口的情况。

区县人口之最

  • 中国人口最多的区县是广东普宁,县级市,揭阳代管,面积 1620 平方公里,人口 247w,排名中国第一。

  • 连大城市市辖区也看的话,第一名是上海浦东,面积 1210 平方公里,常住人口 568w,接近上海人口1/4

区县常住人口 Top10

排名 区县 常住人口
1 上海-浦东 568.15 万
2 深圳-宝安 447.66 万
3 深圳-龙岗 413.53 万
4 广州-白云 413.53 万,占广州 20%
5 佛山-南海 366.72 万,占佛山近 4 成
6 北京-朝阳 345.25 万,占北京 15.8%
7 佛山-顺德 322.91 万,占佛山1/3
8 北京-海淀 313.35 万,占北京1/7
9 成都-双流 265.98 万,占成都1/8
10 广州-番禺 265.84 万,占广州 14.13%

校验码算法

采用ISO7064:1983,MOD11-2校验算法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function checkIdCard(idCard) {
//校验位字符对应的数字
var checkNum= ['1','0','X','9','8','7','6','5','4','3','2'];
//权重
var weight = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
//校验位
var checkCode = idCard.substring(17);
//前17位数字
var idCard17=idCard.substring(0,17);
//计算校验位
var sum=0;
for (var i=0;i<17;i++){
sum += idCard17[i]*weight[i];
}
var mod=sum%11;
//校验
return checkNum[mod] == checkCode;
}

参考