导航:首页 > 源码编译 > 身份证识别软件源码

身份证识别软件源码

发布时间: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。这种方法确保了身份证号码的准确性,减少了识别错误的可能性。

阅读全文

与身份证识别软件源码相关的资料

热点内容
华为云电脑和华为云服务器一样吗 浏览:875
sw更改命令插件 浏览:844
经济学19版pdf 浏览:113
阿里云服务器乱扣钱 浏览:366
linux内核空间和用户空间 浏览:849
菜鸟APP铜包裹哪里看 浏览:66
如何转路流媒体服务器 浏览:585
执行点的命令 浏览:806
操作系统的命令接口 浏览:138
便于还是编译 浏览:733
中科院与压缩空气储能的上市公司 浏览:581
IMR单片机 浏览:438
在县里买房软件app哪个最靠谱 浏览:789
word转换成pdf转换器免费版 浏览:430
8位单片机c语言编程 浏览:883
泰拉瑞亚里的服务器怎么注册 浏览:812
聚会pdf 浏览:641
微信返回界面密码怎么加密 浏览:508
十大编译错误及解析 浏览:121
光遇如何拍慢动作安卓 浏览:264