公民身份號碼俗稱身份證號,是中華人民共和國為中國大陸每個公民從出生之日起、港澳台地區居民從申請居住證之日起、外國人在中國大陸申請外國人永久居留身份證之日起[註 1],編定的唯一的、終身不變(變更性別[註 2][註 3]、更正出生日期、解決重號問題等極少數情況除外)的身份代碼,在中華人民共和國公民辦理涉及政治、經濟、社會生活等權益事務方面廣泛使用。中華人民共和國公安部負責公民身份號碼的編制和組織實施工作。
1984年第一代居民身份證開始簽發時,其編號為15位,相對於18位編碼,其出生日期碼的年份只有兩位,且缺少校驗碼。1999年8月26日中華人民共和國國務院發佈《國務院關於實行公民身份號碼制度的決定》(國發〔1999〕15號),這個文件規定自1999年10月1日起在全國建立和實行公民身份號碼制度,根據同年頒佈的國家標準,公民身份號碼升至現行的18位。
組成方式
中華人民共和國國家標準GB 11643-1999《公民身份號碼》中規定:公民身份號碼是特徵組合碼,由十七位數字本體碼和一位校驗碼組成。
18位數字組合的方式是:
1 | 1 | 0 | 1 | 0 | 2 | Y | Y | Y | Y | M | M | D | D | 8 | 8 | 8 | X |
地址碼 | 出生日期碼 | 順序碼 | 校驗碼 |
- 地址碼
- 對於內地戶籍居民,地址碼是公民首次獲得身份號碼(例如新生兒出生登記、無戶口人員登記戶口)時所在縣(市、鎮、區)的行政區劃代碼,如110102是北京市西城區,如果日後行政區劃出現調整或將戶口遷往外地地址碼也不會改變。由於新生兒通常根據屬人主義確定戶籍,故地址碼並不總能代表公民的出生地。
- 對於持有港澳台居民居住證的港澳台居民,地址碼根據居民的實際身份分配香港(地址碼81)、澳門(地址碼82)和臺灣(地址碼83)的行政區劃代碼,只精確到省級,第三位至第六位全部為0。因此,香港、澳門和台灣居民的地址碼分別為810000、820000和830000。
- 需要注意的是,雖然在中華人民共和國國務院辦公廳2018年8月19日公佈的《港澳台居民居住證申領發放辦法》中,台灣居民分配到的公民身份號碼地址碼為830000,但在實際分配中,台灣省的行政區劃代碼為71而並非83[1][2][3][4][註 4]。
- 出生日期碼表示公民出生的公曆年(4位)、月(2位)、日(2位)。
- 順序碼是給同地址碼同出生日期碼的人編定的順序號,其中奇數分配給男性,偶數分配給女性。
- 最後一位是校驗碼,這裏採用的是ISO 7064:1983, MOD 11-2校驗碼系統[5]。校驗碼為一位數,但如果最後採用校驗碼系統計算的校驗碼是「10」,礙於身份證號碼為18位的規定,則以「X」代替校驗碼「10」。
例如,假設有一名女性,出生地為北京市西城區(對應地址碼為110102),出生於1984年4月6日(對應出生日期碼為19840406),登記時的順序碼為970(女性分配為偶數,男性為奇數),則校驗碼為X,完整的公民身份號碼為11010219840406970X。如果這名女性出生在香港,並同時持有香港永久性居民身份證,那麼在申請港澳台居民居住證時,其對應地址碼就為810000,又因為出生於1994年8月23日(對應出生日期碼為19940823),登記時的順序碼為002(女性分配為偶數,男性為奇數),則校驗碼為1,完整的公民身份號碼為810000199408230021。
2023版中華人民共和國外國人永久居留身份證的證件號碼也為18位。雖然和公民身份號碼相仿,但並不完全等同。
- 1. 將身份證號碼從左至右標記為;即為校驗碼;
- 2. 計算權重係數;其中表示求餘數。
所以:
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Wi | 7 | 9 | 10 | 5 | 8 | 4 | 2 | 1 | 6 | 3 | 7 | 9 | 10 | 5 | 8 | 4 | 2 | 1 |
- 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年後「居民身份證號」就是「公民身份號碼」)
- 標記在中華人民共和國機動車駕駛證上和所配套的數據庫中。
- 標記在中華人民共和國殘疾人證上和所配套的數據庫中。
- 標記在中華人民共和國港澳台居民居住證上和所配套的數據庫中。
- 標記在中華人民共和國外國人永久居留身份證所配套的數據庫中。
- 作為自然人(公民)統一社會信用代碼,用於信用體系(信用中國)制度建設。[6]
重複號碼
因為手工升號的原因,第二代身份證曾存在171萬例重複的號碼,公安部開展戶口清理整頓工作後,公民身份號碼重號人數至2017年已減至8人[7][8]。
註釋
參考文獻
外部連結
參見
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.