六位數字位址碼 + 八位數字出生日期碼 + 三位數字順序碼(順序碼的奇數分給男性,偶數分給女性)+ 一位數字校驗碼(校驗碼是根據前面十七位數字碼,按照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...