查詢身份證号碼重複公式?我們要做校驗身份證是否合法,首先要知道身份證号的組成規則,下面我們就來說說這個身份證号:,接下來我們就來聊聊關于查詢身份證号碼重複公式?以下内容大家不妨參考一二希望能幫到您!
我們要做校驗身份證是否合法,首先要知道身份證号的組成規則,下面我們就來說說這個身份證号:
大家都應該知道我們身份号有兩種,一種是15位數的身份證号 另一種是18位身份證号
15位:6位常住戶口所在縣(市、旗、區)的行政區劃代碼(xxyyzz),6位出生年月日(901212),最後三位稱為順序碼,是對前12位編号相同的人編定的順序号,其中奇數分配給男性,偶數分配給女性。
18位:6位常住戶口所在縣(市、旗、區)的行政區劃代碼(xxyyzz),8位出生年月日(19901212),接下來三位稱為順序碼,是對前14位編号相同的人編定的順序号,其中奇數分配給男性,偶數分配給女性。前面17位身份證編碼統稱為本體碼,是直接由本人的個人信息決定的,而最後一位号碼叫做校驗碼,其是根據校驗公式,由本體碼決定,用來驗證錄入或轉錄過程的準确性。
15位數沒什麼好說的,主要是18位最後一位怎麼來的,為什麼會有X出現?
算法:先對其他17個乘積求和,然後除以11得到餘數,再用1或者12減去這個餘數即可得到校驗碼
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這11個數字。再用1或者12減去這個餘數即可得到校驗碼,其分别對應的最後一位身份證的号碼為1-0-X -9-8-7-6-5-4-3-2。
5、通過上面得知如果餘數是3,就會在身份證的第18位數字上出現的是12-3=9。如果對應的數字是10,身份證的最後一位号碼就是羅馬數字X。
舉個例子:
例如:某男性的身份證号碼為【53010219200508011X】, 我們看看這個身份證是不是合法的身份證或者說校驗計算下最後一位校驗碼是否為X?
首先我們得出前17位的乘積和【(5*7) (3*9) (0*10) (1*5) (0*8) (2*4) (1*2) (9*1) (2*6) (0*3) (0*7) (5*9) (0*10) (8*5) (0*8) (1*4) (1*2)】是189,然後用189除以11得出的結果是189/11=17----2,也就是說其餘數是2。最後通過對應規則就可以知道餘數2對應的檢驗碼是12-2=10即為X。所以,可以判定這是一個正确的身份證号碼。
另外:好奇心比較強的朋友可能會有疑問,對于算法實現的具體實現的第一步前17位對應系數為什麼是7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2,是規定的嘛?其實并不然,本人其實最初了解這個時候也有這樣的疑問,事實上這個系數或者叫加權因子都是一定的計算規則來的,下面給大家也解釋下。
身份證号碼位置i: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
加權因子的公式是:2的18-i次幂除以11取餘數,這個值即為加權因子值
第一位:2的(18-1)次幂=131072=7
第二位:2的(18-2)次幂=65536=9
...
第十七為:2的(18-17)次幂=2=2
如此計算即可得到前十七位對應的加權因子數分别為7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
身份證校驗碼規則你懂了嗎?有了這些計算規則,你想通過程序進行校驗當前身份證号是否合法是不是就沒那麼複雜了?
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!