當前位置:首頁 » 操作系統 » 身份證演算法

身份證演算法

發布時間: 2022-01-09 01:38:24

1. 身份證號如何計算。。。

按身份證號號碼計算至今天年齡
=datedif(text((len(a1)=15)*19&mid(a1,7,6+(len(a1)=18)*2),"#-00-00"),today(),"y")
以2009年12月1日為基準日,按按身份證計算年齡(周歲)的公式
=datedif(text(mid(a1,7,6+(len(a1)=18)*2),"#-00-00")*1,"2009-12-1","y")
我有「常用函數公式及技巧搜集」(word),有郵箱的話我可以發給你。

2. 身份證後面4位具體怎麼計算出來的

18位身份證標准在國家質量技術監督局於1999年7月1日實施的GB11643-1999《公民身份號碼》中做了明確規定。

GB11643-1999《公民身份號碼》為GB11643-1989《社會保障號碼》的修訂版,其中指出將原標准名稱「社會保障號碼」更名為「公民身份號碼」,另外GB11643-1999《公民身份號碼》從實施之日起代替GB11643-1989。

公民身份號碼是特徵組合碼,由十七位數字本體碼和一位校驗碼組成。排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位校驗碼。其含義如下:

1. 地址碼:表示編碼對象常住戶口所在縣(市、旗、區)的行政區劃代碼,按GB/T2260的規定執行。

2. 出生日期碼:表示編碼對象出生的年、月、日,按GB/T7408的規定執行,年、月、日分別用4位、2位、2位數字表示,之間不用分隔符。

3. 順序碼:表示在同一地址碼所標識的區域范圍內,對同年、同月、同日出生的人編定的順序號,順序碼的奇數分配給男性,偶數分配給女性。

校驗的計算方式:

1. 對前17位數字本體碼加權求和
公式為:S = Sum(Ai * Wi), i = 0, ... , 16
其中Ai表示第i位置上的身份證號碼數字值,Wi表示第i位置上的加權因子,其各位對應的值依次為: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

2. 以11對計算結果取模
Y = mod(S, 11)

3. 根據模的值得到對應的校驗碼
對應關系為:
Y值: 0 1 2 3 4 5 6 7 8 9 10
校驗碼: 1 0 X 9 8 7 6 5 4 3 2

15位的身份證號

dddddd yymmdd xx p

18位的身份證號

dddddd yyyymmdd xx p y

其中dddddd為地址碼(省地縣三級)18位中的和15位中的不完全相同
yyyymmdd yymmdd 為出生年月日
xx順號類編碼
p性別
18位中末尾的y為校驗碼,在網上可以找到演算法

3. 怎樣計算身份證的後四位數字

身份證的最後一位是校驗友碼,可以計算。前10位不可計算。
公式:
1、將前面的身份證號碼17位數分別乘以不同的系數。第i位對應的數為[2^(18-i)]mod11。從第一位到第十七位的系數分別為: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 0 X 9 8 7 6 5 4 3 2;

5、通過上面得知如果余數是2,就會在身份證的第18位數字上出現羅馬數字的Ⅹ。如果余數是10,身份證的最後一位號碼就是2;

例如:某男性的身份證號碼是34052419800101001X。我們要看看這個身份證是不是合法的身份證。

首先:我們得出,前17位的乘積和是189

然後:用189除以11得出的結果是17 + 2/11,也就是說余數是2。

最後:通過對應規則就可以知道余數2對應的數字是x。所以,這是一個合格的身份證號碼。

4. 身份證號碼是怎麼計算的

排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。

5. 身份證號碼計算公式

你說的這幾位用公式計算不出來,出生日期是哪天就是什麼號,比如1990年1月1日就是19900101。
身份證號最後一位是通過公式計算出來的。
出生日期不能計算,只能去公


關查詢。

6. 身份證號碼如何計算出來的

根據〖中華人民共和國國家標准 GB 11643-1999〗中有關公民身份號碼的規定,公民身份號碼是特徵組合碼,由十七位數字本體碼和一位數字校驗碼組成。排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。 地址碼表示編碼對象常住戶口所在縣(市、旗、區)的行政區劃代碼。生日期碼表示編碼對象出生的年、月、日,其中年份用四位數字表示,年、月、日之間不用分隔符。順序碼表示同一地址碼所標識的區域范圍內,對同年、月、日出生的人員編定的順序號。順序碼的奇數分給男性,偶數分給女性。校驗碼是根據前面十七位數字碼,按照ISO 7064:1983.MOD 11-2校驗碼計算出來的檢驗碼。下面舉例說明該計算方法。 15位的身份證編碼首先把出生年擴展為4位,簡單的就是增加一個19,但是這對於1900年出生的人不使用(這樣的壽星不多了) 某男性公民身份號碼本體碼為34052419800101001,首先按照公式⑴計算: ∑(ai×Wi)(mod 11)……………………………………(1) 公式(1)中: i----表示號碼字元從由至左包括校驗碼在內的位置序號; ai----表示第i位置上的號碼字元值; Wi----示第i位置上的加權因子,其數值依據公式Wi=2(n-1)(mod 11)計算得出。 i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 ai 3 4 0 5 2 4 1 9 8 0 0 1 0 1 0 0 1 a1 Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1 ai×Wi 21 36 0 25 16 16 2 9 48 0 0 9 0 5 0 0 2 a1 根據公式(1)進行計算: ∑(ai×Wi) =(21+36+0+25+16+16+2+9+48++0+0+9+0+5+0+0+2) = 189 189 ÷ 11 = 17 + 2/11 ∑(ai×Wi)(mod 11) = 2 然後根據計算的結果,從下面的表中查出相應的校驗碼,其中X表示計算結果為10: ∑(ai×WI)(mod 11) 0 1 2 3 4 5 6 7 8 9 10 校驗碼字元值ai 1 0 X 9 8 7 6 5 4 3 2 根據上表,查出計算結果為2的校驗碼為所以該人員的公民身份號碼應該為 34052419800101001X。 a[0]*7+a[1]*9+a[2]*10+a[3]*5+a[4]*8+a[5]*4+a[6]*2+a[7]*1+a[8]*6+a[9]*3 +a[10]*7+a[11]*9+a[12]*10+a[13]*5+a[14]*8+a[15]*4+a[16]*2 %11 when 0 then '1' when 1 then '0' when 2 then 'X' when 3 then '9' when 4 then '8' when 5 then '7' when 6 then '6' when 7 then '5' when 8 then '4' when 9 then '3' when 10 then '2' */ /*

求採納

7. 如何算出自己的身份證號

目前我國公民身份證號碼由18位數字組成:前6位為地址碼,第7至14位為出生日期碼,第15至17位為順序碼,第18位為校驗碼。檢驗碼分別是「0、1、2、……10」共11個數字,當檢驗碼為「10」時,為了保證公民身份證號碼18位,所以用「X」表示。雖然校驗碼為「X」不能更換,但若需全用數字表示,只需將18位公民身份號碼轉換成15位居民身份證號碼,去掉第7至8位和最後1位3個數碼。

8. 身份證的最後幾位是怎麼計算的

公民身份號碼是特徵組合碼,由十七位數字本體碼和一位校驗碼組成。

排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。

地址碼(前六位數)

表示編碼對象常住戶口所在縣(市、旗、區)的行政區劃代碼,按GB/T2260的規定執行。

地址碼的編碼規則為:第一位表示地區,1-華北、2 -東北、3-華東、4-中南、5-西南、6-西北,

這樣各省編碼為

11 北京市、12天津市、13河北省、14山西省、15 內蒙古自治區;

21 遼寧省、22吉林省、23黑龍江省;

31 上海市、32江蘇省、33浙江省、34安徽省、35福建省、36 江西省、37山東省;

41 河南省、42湖北省、43湖南省、44廣東省、45廣西壯族自治區、46海南省;

51 四川省、52 貴州省、53 雲南省、54西藏自治區、50重慶市;

61 陝西省、62甘肅省、63 青海省、64 寧夏回族自治區、65新疆維吾爾自治區;

71 台灣省、

81 香港特別行政區、

82 澳門特別行政區。

出生日期碼(第七位至十四位)

表示編碼對象出生的年、月、日,按GB/T7408的規定執行,年、月、日代碼之間不用分隔符。

順序碼(第十五位至十七位)

表示在同一地址碼所標識的區域范圍內,對同年、同月、同日出生的人編定的順序號,順序碼的奇數分配給男性,偶數分配給女性。

校驗碼(第十八位數)

作為尾號的校驗碼,是由號碼編制單位按統一的公式計算出來的,如果某人的尾號是0-9,都不會出現X,但如果尾號是10,那麼就得用X來代替,因為如果用10做尾號,那麼此人的身份證就變成了19位,而19位的號碼違反了國家標准,並且我國的計算機應用系統也不承認19位的身份證號碼。Ⅹ是羅馬數字的10,用X來代替10,可以保證公民的身份證符合國家標准。

但是我國的居民身份證在升位後,一些人的尾號變成了X,這部分人在工作生活中,例如去銀行存取錢、去汽車公司租賃汽車或者報名參加考試等等過程中,往往不被檢驗者理解,認為是假身份證,這樣的誤會給很多人的生活帶來不便。公安局的同志希望領到X身份證的同志正確理解這個數字的含義,查驗身份證的機關和單位更應該清楚這一點。

其他說明

身份證上的數字編號,共有15位(新身份證號為18位).從左到右,開頭6位數字,屬行政區域代碼,按層次每兩位分別表示我國省(自治區,直轄市),地區(市,州,盟)和縣(旗,鎮,區)的名稱.例如,頭六位數字為420107,則42,01和07分別代表湖北省,武漢市和青山區.編號的第七位到第十二位(新身份證號為編號的第七位到第十四位),屬出生日期號碼,表示本人出生的年月日.例如,出生於1963年10月1日,這個數字便是631001.(新身份證號為19631001).第13—15位屬分配順序代碼.(新身份證號第15-16位為順序碼)如第15位的這個數字.(新身份證號為第17位),男性用單數,女性用雙數表示.此外,還有一個特殊規定,即末尾以 996, 997, 998和 999這四個號為百歲以上老人的特殊規定編號,它們不再分配給其他任何人.

合格身份證中第十八位數字的計算方法為:

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 .0. X. 9. 8. 7. 6. 5. 4. 3. 2.。

5.通過上面得知如果余數是2,就會在身份證的第18位數字上出現羅馬數字的Ⅹ。如果余數是10,身份證的最後一位號碼就是2。

例如:某男性的身份證號碼是340524 1980 01 01 001X。我們要看看這個身份證是不是合法的身份證。

首先:我們得出,前17位的乘積和是189

然後:用189除以11得出的結果是17 + 2/11,也就是說余數是2。

最後:通過對應規則就可以知道余數2對應的數字是x。所以,這是一個合格的身份證號碼。

號碼前六位代表的區域

北京市|110000,天津市|120000,河北省|130000,山西省|140000,內蒙古自治區|150000,

遼寧省|210000,吉林省|220000,黑龍江省|230000,

上海市|310000,江蘇省|320000,浙江省|330000,安徽省|340000,福建省|350000,江西省|360000,山東省|370000,

河南省|410000,湖北省|420000,湖南省|430000,廣東省|440000,廣西壯族自治區|450000,海南省|460000,

四川省|510000,貴州省|520000,雲南省|530000,西藏自治區|540000,重慶市|500000,

陝西省|610000,甘肅省|620000,青海省|630000,寧夏回族自治區|640000,新疆維吾爾自治區|650000,

台灣省(886)|710000,香港特別行政區(852)|810000,澳門特別行政區(853)|820000

熱點內容
sqlserveronlinux 發布:2024-09-19 08:16:54 瀏覽:253
編程常數 發布:2024-09-19 08:06:36 瀏覽:950
甘肅高性能邊緣計算伺服器雲空間 發布:2024-09-19 08:06:26 瀏覽:161
win7家庭版ftp 發布:2024-09-19 07:59:06 瀏覽:716
資料庫的優化都有哪些方法 發布:2024-09-19 07:44:43 瀏覽:268
知乎華為編譯器有用嗎 發布:2024-09-19 07:32:20 瀏覽:617
訪問虛擬機磁碟 發布:2024-09-19 07:28:13 瀏覽:668
原地工作演算法 發布:2024-09-19 07:28:07 瀏覽:423
如何設置linux的ip地址 發布:2024-09-19 07:22:25 瀏覽:750
微信忘記密碼如何修改密碼 發布:2024-09-19 07:05:07 瀏覽:80