A. 如何計算身份證號碼的校驗碼
如何計算身份證號碼的校驗碼
身份證第18位(校驗碼)如何計算
大家可能很少會計算身份證第18位的校驗碼的吧?就讓大家了解了解以備不時之需吧!
方法
1.將前面的身份證號碼17位數分別乘以不同的系數。從第一位到第十七位的系數分別為:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。然後將這17位數字和系數相乘的結果相加
2.用加出來的和除以11,看余數是多少,余數只可能有0-1-2-3-4-5-6-7-8-9-10這11個數字。其分別對應的最後一位身份證的號碼為1-0-X
-9-8-7-6-5-4-3-2。
3.通過上面得知如果余數是3,就會在身份證的第18位數字上出現的是9。如果對應的數字是10,身份證的最後一位號碼就是羅馬數字x。大概的方法就是這樣了。
B. 身份證校驗碼計算公式是什麼
校驗碼是根據前面十七位數字碼。
具體的公式舉例說明為:
某男性公民身份號碼本體碼為34052419800101001,首先按照公式計算:∑(ai×Wi)(mod11),其中,i表示號碼字元從右至左包括校驗碼在內的位置序號;
這4個的前2個代表著我們身份證的派出所的代碼,那麼接著的是1個數字是根據性別來定的,奇數代表的是男性的身份證,偶數代表的是女性的身份證,最後一個數字就是我們今天的重點,有的是數字,有的人是「X」。
(2)身份證校驗碼演算法擴展閱讀:
對於我們的身份證,其實還有個講究的,就是我們身份證倒數的後兩位數字,其實用來區分男女性別的,倘若你細心可以發現這個數字是奇數的,那個身份證的人就是男性,反之便是女的。
此外,我們生日數字後面那4位,最後兩個已經解釋了是怎麼一回事了,另外的那兩個數字便是我們所出生那時的順序,是以出生的地方為標準的呢,所以其實我們的身份證可是很有講究的。
C. 身份證的最後一位的效驗碼的公式是什麼(簡單一點的公式)
公民身份號碼是由17位數字碼和1位校驗碼組成。排列順序從左至右分別為:6位地址碼,8位出生日期碼,3位順序碼和1位校驗碼。
地址碼(身份證地址碼對照表見下面附錄)和出生日期碼很好理解,順序碼表示在同一地址碼所標識的區域范圍內,對同年同月同日出生的人編定的順序號,順序碼的奇數分配給男性,偶數分配給女性。
身份證最後一位校驗碼演算法如下:
1.
將身份證號碼前17位數分別乘以不同的系數,從第1位到第17位的系數分別為:7
9
10
5
8
4
2
1
6
3
7
9
10
5
8
4
2
2.
將得到的17個乘積相加。
3.
將相加後的和除以11並得到余數。
4.
余數可能為0
1
2
3
4
5
6
7
8
9
10這些個數字,其對應的身份證最後一位校驗碼為1
0
X
9
8
7
6
5
4
3
2。
校驗碼計算公式:
公式①中:
i
表示號碼字元從由至左包括校驗碼在內的位置序號;
Ai
表示第i位置上的號碼字元值;
Wi
示第i位置上的加權因數。
加權因數的集合為{7,
9,
10,
5,
8,
4,
2,
1,
6,
3,
7,
9,
10,
5,
8,
4,
2,
1}
v={1,
0,
X,
9,
8,
7,
6,
5,
4,
3,
2}
最後一位的校驗位就是集合v中的第m個元素的值。
下面舉例算一個:
隨便一個號碼,如濟南市市轄區的某位出生於1901年02月03日的男性公民身份號碼前11位(也就是本體碼)為37010119010203997,首先按照公式⑴計算:
然後根據計算的結果,從集合v中查出相應的校驗碼,其中X表示10:
根據集合v,查出計算結果為9的校驗碼3為所以該人員的公民身份號碼應該為
370101190102039973。
說下余數的演算法。
一、兩個異號整數求余
1.函數值符號規律(余數的符號)
mod(負,正)=正
mod(正,負)=負
結論:兩個整數求余時,其值的符號為除數的符號。
2.取值規律
先將兩個整數看作是正數,再作除法運算
①能整除時,其值為0
②不能整除時,其值=除數×(整商+1)-被除數
例:mod(36,-10)=-4
即:36除以10的整數商為3,加1後為4;其與除數之積為40;再與被除數之差為(40-36=4);取除數的符號。所以值為-4。
二、兩個小數求余
取值規律:
被除數-(整商×除數)之後在第一位小數位進行四捨五入。
例:mod(9,1.2)=1
即:9除1.2其整商為7;7與除數1.2之積為8.4;8.4四捨五入之後為8;被除數9與8之差為1。故結果為1。
例:mod(9,2.2)=0
即:9除2.2其整商為4;4與除數2.2這積為8.8;8.8四捨五入之後
為9;被除數9與之差為0,故結果為0.
D. 身份證的校驗碼 是怎樣計算的
校驗碼
(身份證最後一位)是根據前面十七位數字碼,按照ISO 7064:1983.MOD 11-2校驗碼計算出來的檢驗碼。作為尾號的校驗碼,是由號碼編制單位按統一的公式計算出來的,如果某人的尾號是0-9,都不會出現X,但如果尾號是10,那麼就得用X來代替,因為如果用10做尾號,那麼此人的身份證就變成了19位,而19位的號碼違反了國家標准,並且我國的計算機應用系統也不承認19位的身份證號碼。Ⅹ是羅馬數字的10,用X來代替10,可以保證公民的身份證符合國家標准。
E. 身份證號碼的最後一位校驗碼是怎麼計算出來的
先將身份證前面的17位數分別乘以不同的系數,然後將每一個相乘的結果相加,用所得之和除以11,看余數是多少,余數是0--9尾數就是0-9,如果余數是10,那麼身份證的第18位數字就用羅馬數字的【χ代替】。
因為是10的話就有19位數字了,與身份證號碼十八位數的國家標准不相符合。因為是10的話就有19位數字了,與身份證號碼十八位數的國家標准不相符合。
X:英語中第24個字母。X 表示未知、無限,X 還有「目標」和「希望」,X 在社會學界表示「完美」,千言萬語都可以用 X 來傳遞。數學中 X 在方程中通常表示未知數的值。在羅馬數字中,X 表示十。
(5)身份證校驗碼演算法擴展閱讀:
身份證號碼18位數字其表示的含義分別為:
第1、2位, 所在省份的代碼;
第3、4位 :所在城市的代碼;
第5、6位:所在區縣的代碼;
第7——14位 :出生年、月、日
(7、8、9、10位是年,11、12位是月,13、14位是日);
第15、16位 :所在地派出所的代碼;
第17位 :奇數1、3、5、7、9表示男性,偶數2、4、6、8表示女性;
第18位:校檢碼:為0——9數字,或者羅馬數字χ表示。
F. 身份證號最後一位數字稱之為校驗碼,校驗碼的計算方式是怎樣的
按照相關規定,身份號是由17個數字和1個數字校驗碼組成的。而最後一位校驗碼,就是檢查身份證是否正確的主要依據。它的計算方法,主要是由前17位乘以不同的系數,最後的總和除以11。在這種情況下,得到的余數,就是校驗碼。
那麼我們在反推的時候,就可以用身份證號乘於系數,當最後得出的余數和末尾校驗碼不同時,就代表這個身份證,是一個假的身份證,不符合我們國家的標准。另外,余數對應的數字不同,並不是說余數就一定是最後一位身份證號碼。
看到整個計算過程,我們會發現,想要得出校驗碼,並非一件易事。不過在計算中,有人可能會提出疑問,最終的除以為什麼是取11,而不是其他數字。
其實這個問題的答案很簡單,結合校驗碼的功能,11是最容易檢測出問題的存在。同時,它可以覆蓋到大多數身份證,方便進行校驗。畢竟一個國家人口眾多,校驗碼要做到盡可能覆蓋所有人。
G. 身份證驗證碼怎麼計算
身份證是沒有驗證碼的
只有身份證辦理業務的時候才有的
這個就是會有驗證碼發到你的手機上面的
H. 身份證校驗碼是怎樣計算的
我自己做了個EXCEL表格來進行校驗碼計算
裡面有演算法
你要是需要可以給我你的郵箱,我發過去
你要是只想知道演算法,我就簡單告訴你
校驗碼作為第1位(這里按照18、17、16...1
進行號碼排列),它生成不是隨機的,而是通過前17位的計算得出
具體演算法是
前17位分別乘以7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,然後進行ξ和,也就是結果相加;得到的數據模除11(也就是除以11,取其餘數),得出0到10共11個數字,然後分別對照1,0,X,9,8,7,6,5,4,3,2進行替換,這便是最終的校驗碼。
舉個例子:34052419800101001X
當你不知道最後一位時,也就是
34052419800101001
前17位的乘積和(就是分別乘以7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2再求和)是189
,再除以11,余數為2
此時,對照1,0,X,9,8,7,6,5,4,3,2的第三位(從0到10順序替換)
得到校驗位為X。
I. 身份證校驗碼是怎樣計算的
我自己做了個EXCEL表格來進行校驗碼計算
裡面有演算法
你要是需要可以給我你的郵箱,我發過去
你要是只想知道演算法,我就簡單告訴你
校驗碼作為第1位(這里按照18、17、16...1 進行號碼排列),它生成不是隨機的,而是通過前17位的計算得出
具體演算法是 前17位分別乘以7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,然後進行ξ和,也就是結果相加;得到的數據模除11(也就是除以11,取其餘數),得出0到10共11個數字,然後分別對照1,0,X,9,8,7,6,5,4,3,2進行替換,這便是最終的校驗碼。
舉個例子:34052419800101001X 當你不知道最後一位時,也就是
34052419800101001
前17位的乘積和(就是分別乘以7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2再求和)是189 ,再除以11,余數為2
此時,對照1,0,X,9,8,7,6,5,4,3,2的第三位(從0到10順序替換) 得到校驗位為X。
J. 身份證號碼尾號的校驗碼是由什麼公式計算出來的
校驗碼是根據前面十七位數字碼,按照ISO
7064:1983.MOD
11-2校驗碼計算出來的檢驗碼。
具體的公式舉例說明為:
某男性公民身份號碼本體碼為34052419800101001,首先按照公式計算:∑(ai×Wi)(mod
11),其中,i表示號碼字元從右至左包括校驗碼在內的位置序號;
a[i]表示第i位置上的號碼字元值;
W[i]示第i位置上的加權因子,其數值依據公式
W[i]
=
2^(i-1)
mod
(11)計算得出。
則,設R=∑(a[i]×W[i])(mod
11)
=
2,同時R的值【0
1
2
3
4
5
6
7
8
9
10】對應取值為【1
0
X
9
8
7
6
5
4
3
2】。
計算結果為2的校驗碼為X,所以該人員的公民身份號碼應該為
34052419800101001X。
(10)身份證校驗碼演算法擴展閱讀:
身份證號碼的結構和形式:
1、號碼的結構:公民身份號碼是特徵組合碼,由十七位數字本體碼和一位校驗碼組成。排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。
2、地址碼:表示編碼對象常住戶口所在縣(縣級市、旗、區)的行政區劃代碼,按GB/T2260的規定執行。
3、出生日期碼:表示編碼對象出生的年、月、日,按GB/T7408的規定執行,年、月、日代碼之間不用分隔符。
4、順序碼:表示在同一地址碼所標識的區域范圍內,對同年、同月、同日出生的人編定的順序號,順序碼的奇數分配給男性,偶數分配給女性。
5、校驗碼:根據前面十七位數字碼,按照ISO
7064:1983.MOD
11-2校驗碼計算出來的檢驗碼。
參考資料來源:網路-身份證號碼
參考資料來源:網路-身份證校驗位