身份證15位公升18位

2021-07-27 09:05:29 字數 845 閱讀 1783

六位數字位址碼 + 八位數字出生日期碼 + 三位數字順序碼(順序碼的奇數分給男性,偶數分給女性)+ 一位數字校驗碼(校驗碼是根據前面十七位數字碼,按照iso 7064:1983.mod 11-2校驗碼計算出來的檢驗碼)

(1)多了年數:第6位開始多了19表示完整的出生日期

(2)多了最後一位校驗碼

∑(ai×wi)(mod 11)……………………………………(1)

(1)、十七位數字本體碼加權求和公式,先對前17位數字加權求和

s = sum(ai×wi)

ai:表示第i位置上的身份證號碼數字值 

wi:表示第i位置上的加權因子

說明:加權因子的公式是:2的i-1次方除以11取餘數

(2)、計算模 

y = mod(s, 11) ,y是s除以11的模。 

(3)、通過模得到對應的校驗碼y值0

1234

5678

910校驗碼10x

9876

5432

/***

* 身份證15轉18

* @param idcard 15位身份證號

* @return 18位身份證號

*/private static string idcard15to18(string idcard) ;

int sum = 0;

if (idcard != null && idcard.length() == 15)

int indexofcheckbit = sum % 11;

// 新增校驗碼

} return idcard18.tostring();

}

15位身份證補全為18位身份證演算法

一 15位身份證和18位身份證號碼結構介紹 要進行身份證號碼的驗證,首先需要了解我國身份證號碼的編碼規則。我國身份證號碼多由若干位數字或者數字與字母混合組成。早期身份證由15位數字構成,這主要是在1980年以前發放的身份證,後來考慮到千年蟲問題,因為15位的身份證號碼只能為1900年1月1日到199...

身份證15轉18位

身證份15位轉18位 測試用例用 顯示部分系統人為修改,create function f cid15to18 sfz char 18 returns char 18 asbegin declare osfz varchar 18 declare i int,ai int,wi int,sum in...

15位身份證 18位轉換

region 元件設計器生成的 web 服務設計器所必需的 private icontainer components null 設計器支援所需的方法 不要使用 編輯器修改 此方法的內容。private void initializecomponent 清理所有正在使用的資源。protected o...