公民身份号码

公民身份号码，俗称身份证号，是中华人民共和国为中国大陆每个公民从出生之日起、港澳台地区居民从申请居住证之日起、外国人在中国大陆申请“中国绿卡”之日起，编定的唯一的、终身不变（变更性别、更正出生日期、解决重号问题等极少数情况除外）的身份代码，在中华人民共和国公民办理涉及政治、经济、社会生活等权益事务方面广泛使用。中华人民共和国公安部负责公民身份号码的编制和组织实施工作。

1984年第一代居民身份证开始签发时，其编号为15位，相对于18位编码，其出生日期码的年份只有两位，且缺少校验码。1999年8月26日中华人民共和国国务院发布《国务院关于实行公民身份号码制度的决定》（国发〔1999〕15号），这个文件规定自1999年10月1日起在全国建立和实行公民身份号码制度，根据同年颁布的国家标准，公民身份号码升至现行的18位。

组成方式
中华人民共和国国家标准GB 11643-1999《公民身份号码》中规定：公民身份号码是特征组合码，由十七位数字本体码和一位校验码组成。

18位数字组合的方式是：
地址码
对于内地户籍居民，地址码是公民首次获得身份号码（例如新生儿出生登记、无户口人员登记户口）时所在县（市、镇、区）的行政区划代码，如110102是北京市西城区，如果日后行政区划出现调整或将户口迁往外地地址码也不会改变。由于新生儿通常根据属人主义确定户籍，故地址码并不总能代表公民的出生地。
对于港澳台居民，地址码根据居民的实际身份分配香港、澳门或台湾的行政区划代码，只精確到省級，第三位至第六位全部为0。
出生日期码表示公民出生的公历年（4位）、月（2位）、日（2位）。
顺序码是给同地址码同出生日期码的人编定的顺序号，其中奇数分配给男性，偶数分配给女性。
最后一位是校验码，这里采用的是ISO 7064:1983, MOD 11-2校验码系统。校验码为一位数，但如果最后采用校验码系统计算的校验码是“10”，碍于身份证号码为18位的规定，则以“X”代替校验码“10”。

假设有一名女性，出生地为北京市西城区（对应地址码为110102），出生于1984年4月6日（对应出生日期码为19840406），登记时的顺序码为970（女性分配为偶数），则校验码为X，完整的公民身份号码为11010219840406970X。

2023版中华人民共和国外国人永久居留身份证的证件号码也为18位，和公民身份号码相仿但并不完全等同。

校验码计算方法 
1. 将身份证号码从左至右标记为；即为校验码；
2. 计算权重系数；其中表示求余数。
所以：

3. 计算
4. 

以下是用C++写的校验码检查程序：

bool check(char id[]) {
	int index, sum, num;
	for (sum = index = 0; index < 17; index++)
		sum += (pow(2, 17 - index) % 11) * (id[index] - '0');
	num = (12 - (sum % 11)) % 11;
	if (num < 10)
		return (num == id[17] - '0');
	else
		return (id[17] == 'X');
}

以及用R语言编写的小程序：
check_CHN_ID <- function(id) {
  ids <- strsplit(as.character(id),'')[[1]]
  if(length(ids) != 18) return(FALSE)
  s <- sum(2^(17:1) %% 11 * as.numeric(ids[1:17]))
  n <- (12 - s%%11) %% 11
  ifelse(n<10, n == as.numeric(ids[18]), toupper(ids[18]) == 'X')
}

应用
标记在中华人民共和国社会保障卡上和所配套的数据库中，作为社会保障号码。（1999年前，GB 11643-1989的名称即“社会保障号码”）
标记在中华人民共和国居民身份证、居民户口簿上和所配套的户籍人口数据库中。（因此，1999年后“居民身份证号”就是“公民身份号码”）
标记在中华人民共和国机动车驾驶证上和所配套的数据库中。
标记在中华人民共和国残疾人证上和所配套的数据库中。
标记在中华人民共和国港澳台居民居住证上和所配套的数据库中。
标记在中华人民共和国外国人永久居留身份证所配套的数据库中。
作为自然人（公民）统一社会信用代码，用于信用体系（信用中国）制度建设。

重复号码
因为手工升号的原因，第二代身份证曾存在171万例重复的号码，公安部开展户口清理整顿工作后，公民身份号码重号人数至2017年已减至8人。

注释

参考文献

外部链接

国务院关于实行公民身份号码制度的决定

参见 
 中华人民共和国行政区划代码
 中华人民共和国居民身份证

中华人民共和国国家标准
+
國民識別號碼