導航:首頁 > 源碼編譯 > 身份證識別軟體源碼

身份證識別軟體源碼

發布時間:2025-06-16 20:06:09

⑴ 如何提取身份證詳細地址信息

1、根據身份證號碼的組成規則,前兩張身份證代表省籍,前六張代表完整的行政區,我們以省籍為例,在新工作單名冊上的第一個。輸入表格中的代碼和區域列。
2、然後我們把姓名和身份證號碼信息輸入到軟體中,並保留一份完整的國籍清單。然後輸入公式=查找(左(b3,2),身份證源代碼表!a1:b22,2,0)。
這個公式的意思是=vlukup(提取前兩張ID卡,匹配原點代碼表,返回第二列值,精確匹配)。寫公式時,可以直接拉身份證代碼表。
3、確認後,可以看到身份證的相應地,然後用填寫國籍表,即可快速輸入人員的原地資料。
4、輸入公式回到車內,會顯示#n/a,可能是因為輸入的id數字是文字格式,而id數字碼表是數字格式,公式無法匹配,無法返回數據,顯示錯誤。
5、在這種情況下,可以在LEFT之前添加利用數學中的負向和正向原理將文本格式轉換為數字格式,可以匹配代碼表。就可以和代碼表進行匹配了,回車確定後填充即可。
6、如果要提取詳細的來源信息,可以在互聯網上下載六位數字的區域代碼列表,並將前兩位數字改為前六位數字即可。

⑵ 15身份證號碼轉18位演算法,用java 程序怎樣實現即java程序源代碼

import java.text.DateFormat;

import java.text.NumberFormat;

import java.util.*;

import java.io.ByteArrayInputStream;

import java.text.DecimalFormat;

import java.text.SimpleDateFormat;

public class COMUT {

public COMUT() {

}

/**
*
* 修補15位居民身份證號碼為18位
*
* @param personIDCode
*
* @return
*/

public static String fixPersonIDCode(String personIDCode)

{

String retIDCode = "";

if (personIDCode == null || personIDCode.trim().length() != 15) {

return personIDCode;

}

String id17 = personIDCode.substring(0, 6) + "19"
+ personIDCode.substring(6, 15); // 15為身份證補\'19\'

// char[] code =
// {\'1\',\'0\',\'X\',\'9\',\'8\',\'7\',\'6\',\'5\',\'4\',\'3\',\'2\'};
// //11個
char[] code = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' }; // 11個

int[] factor = { 0, 2, 4, 8, 5, 10, 9, 7, 3, 6, 1, 2, 4, 8, 5, 10, 9, 7 }; // 18個;

int[] idcd = new int[18];

int i;

int j;

int sum;

int remainder;

for (i = 1; i < 18; i++)

{

j = 17 - i;

idcd[i] = Integer.parseInt(id17.substring(j, j + 1));

}

sum = 0;

for (i = 1; i < 18; i++)

{

sum = sum + idcd[i] * factor[i];

}

remainder = sum % 11;

String lastCheckBit = String.valueOf(code[remainder]);

return id17 + lastCheckBit;

}

/**
*
* 判斷是否是有效的18位或15位居民身份證號碼
*
* @param identityId
* :18位或15位居民身份證號碼
*
* @return:true: 有效的18位或15位居民身份證號碼
*/

public static boolean isIdentityId(String identityId) {

if (isEmpty(identityId))
return false;

try {

if (identityId.length() == 18) {

String identityId15 = identityId.substring(0, 6)
+ identityId.substring(8, 17);

// System.out.println("the identityId15 is : "+identityId15);

if (fixPersonIDCode(identityId15).equalsIgnoreCase(identityId)) {

return true;

} else {

return false;

}

} else if (identityId.length() == 15) {

try {

Long.parseLong(identityId);

return true;

} catch (Exception ex) {

return false;

}

} else {

return false;

}

} catch (Exception ex) {

return false;

}

}

/**
*
* 判斷是否為空串""
*/

public static boolean isEmpty(String sValue) {

if (sValue == null)
return true;

return sValue.trim().equals("") ? true : false;

}

public static void main(String[] args) {

try {

System.out.println(fixPersonIDCode("650103760113073"));// 身份證15位轉18位

System.out.println(isIdentityId("650103760113073")); // 否是為有效的15位身份證號

} catch (Exception e) {

e.printStackTrace();

}

}

}

⑶ 身份證源碼什麼意思

身份證號碼的前兩位數字代表所在省份的代碼,第三和第四位數字代表所在城市的代碼,第五和第六位數字表示所在區縣的代碼。第七到第十四位數字代表出生的年、月、日,第十五和第十六位數字代表所在地派出所的代碼。第十七位數字表示性別,奇數表示男性,偶數表示女性。第十八位數字是校驗碼,根據前面十七位數字碼,按照ISO 7064:1983.MOD 11-2校驗碼計算方法得到。

具體的計算方法是將前17位身份證號碼分別乘以不同的系數。從第一位到第十七位的系數分別為7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2。然後將這17位數字和系數相乘的結果相加。接著,用加出來的和除以11,看余數是多少。余數可能是0 1 2 3 4 5 6 7 8 9 10中的一個數字,每個數字對應一個特定的最後一位身份證號碼。例如,余數為2時,身份證的第18位數字會是1;余數為10時,身份證的第18位數字會是2。

如果計算過程中出現羅馬數字Ⅹ,它在身份證的第18位數字位置表示10。這種方法確保了身份證號碼的准確性,減少了識別錯誤的可能性。

閱讀全文

與身份證識別軟體源碼相關的資料

熱點內容
如何轉路流媒體伺服器 瀏覽:585
執行點的命令 瀏覽:806
操作系統的命令介面 瀏覽:138
便於還是編譯 瀏覽:733
中科院與壓縮空氣儲能的上市公司 瀏覽:581
IMR單片機 瀏覽:438
在縣里買房軟體app哪個最靠譜 瀏覽:789
word轉換成pdf轉換器免費版 瀏覽:430
8位單片機c語言編程 瀏覽:883
泰拉瑞亞里的伺服器怎麼注冊 瀏覽:812
聚會pdf 瀏覽:641
微信返回界面密碼怎麼加密 瀏覽:508
十大編譯錯誤及解析 瀏覽:121
光遇如何拍慢動作安卓 瀏覽:264
雲伺服器mes 瀏覽:397
a島匿名版app要下哪個 瀏覽:617
安卓人手機照片怎麼導入蘋果手機 瀏覽:744
sql如何查看資料庫伺服器地址 瀏覽:654
為何macbook適合程序員 瀏覽:46
如何連接遠程伺服器的mysql 瀏覽:192