18位的身份证的最后一位是校验码,这个校验码采用的是ISO 7064 Mod 11-2校验系统实现的,其校验公式如下:
公式说明:
- n:字符串的字符个数(包括校验码)
- i:字符位置序号(由右至左,包括校验码,空格与分隔符不及),即最右边的字符i=1
- ai:字符值,0-10,10用X表示
- r:底数,2
- M:模数,11
java实现:
private static char check(String str)
{
int len = str.length();
char[] ary = str.toCharArray();
int sum = 0;
for(int i = 0; i < len;i++)
{
int v = 0;
char cur = ary[i];
if(cur == 'X' || cur == 'x')
v = 10;
else
v = Character.getNumericValue(cur);
sum += v;
sum <<= 1;
}
int temp = (12 - sum % 11) % 11;
if(temp == 10)
return 'x';
return Character.forDigit(temp, 10);
}
分享到:
相关推荐
本函数提供18位身份证校验位的计算方法,输入前17位即可得到第18位的校验码!
此工具可通过计算,得出身份证号码最后一位。需提供身份证号码前17位,准确率100%。
自动计算(18位)身份证最后一位校验位。 身份证号码组成:6位区域码,8位身份证号,2位序号,1位性别码(男奇数,女偶数),1位校验码,共计18位
### SQL15位和18位公民身份证校验函数知识点详解 #### 一、背景介绍 在进行数据录入时,确保身份证信息的合法性至关重要。不正确的身份证信息将导致数据的有效性和准确性大打折扣。为此,设计了一款专门用于校验15...
在编程领域,实现这样的身份证校验码计算功能通常会编写一个工具类,以便在各种项目中复用。 源码是程序员用特定编程语言编写的指令集合,可以直接运行或编译后执行。在这个案例中,“身份证的校验码 工具类”很...
在本案例中,提供的“身份证校验码查询工具”是一个`.bat`批处理文件,可以便捷地帮助用户计算身份证的校验位,只需输入身份证号码的前17位即可。 身份证号码的结构分为三部分:地区码、出生日期码和顺序码,校验码...
这个方法首先检查身份证号码的长度,然后逐位计算乘积并求和,接着计算校验码,并与身份证号码的最后一位进行比较。如果两者相符,则身份证号码有效。 在实际应用中,你还可以添加更多的错误处理和异常处理机制,以...
可以计算身份证校验码,要python环境
用户可以输入18位身份证号码,程序会自动计算校验码并与输入的最后一位比较,如果一致则表明身份证号码有效,否则提示错误并显示正确的校验码。 在实际应用中,身份证校验广泛应用于各种领域,如银行开户、网络注册...
#### 三、校验码计算方法 校验码是根据前17位数字计算得出的一个值,用以验证整个身份证号码的合法性。具体的计算方法如下: 1. **确定加权因子**:定义一组加权因子数组`{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, ...
根据提供的信息,我们可以总结出以下关于“身份证校验码方法-Java”的知识点: ### 一、身份证号码结构 中国的第二代居民身份证号码由18位组成,包括了以下几个部分: - **前6位**:行政区划代码。 - **第7至14位*...
身份证号码的校验码计算基于特定的算法,该算法涉及到前17位数字与一系列系数的乘积之和,然后对结果进行模11运算。具体步骤如下: 1. **确定系数**:对于身份证号码的第i位(从1到17),对应的系数为[2^(18-i)]mod...
Oracle身份证号码校验函数,可以将15位身份号码升为18位,检验出生年月等信息
通过以上步骤,我们可以完成一个基本的身份证校验码计算。PHP代码的实现方式包括两个版本:一个是具有详细注释的版本,便于理解整个流程;另一个则是去除了一些变量定义,对代码进行简化的版本,可以提高代码的运行...
通过 Excel 公共函数计算二代公民身份证号码末位校验码是基于 GB 11643-1999 和 IOS 7064 的计算规则,用于计算 18 位身份证号码的最后一位校验码。该计算规则将身份证号码前 17 位数字按照特定的加权因子计算,最后...
python 计算身份证校验码
而身份证校验码的计算原理是计算机科学中的一个基础应用,适合用来引导孩子们学习编程。本项目以"身份证校验码计算器"为主题,利用Scratch这款面向少年儿童的图形化编程工具,为孩子们提供了一个直观、有趣的编程...
校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。 公式如下: ∑(a[i]*W[i]) mod 11 ( i = 2, 3, ..., 18 ) (1) "*" 表示乘号 i--------表示身份证号码每一位的序号,从右...
中国居民身份证校验码算法如下: 将身份证号码前面的17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 将这17位数字和系数相乘的结果相加。用加...