现在的居民身份证由原先的15位号码升级为18位了。从左至右,第1-2位为省级行政区划代码,第3-4为为地级行政区划代码,第5-6位为县级行政区划代码,第7-10位为出生年份,第11-12位为出生月份,第13-14为出生日期,第15-17位为顺序码,表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性,第18位为作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。
根据《中华人民共和国国家标准GB 11643-1999》中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。顺序码的奇数分给男性,偶数分给女性。校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
下面介绍算法。
先引入公式:
计算公式令结果为 Y,Y的计算公式为:Y = mod(S, 11)根据下表找出 Y 对应的校验码即为要求身份证号码的校验码C。
例如:假设某女性居民的15位身份证号码是320105820927512,32表示江苏省,01表示南京市,05表示鼓楼区,820927表示1982年9月27日。512表示是该地区同年同月同日的第512人,其中2表示是女性。那么,升级为18位后的号码为32010519820927512C。下面就根据公式来计算C的值。
Y = mod(S, 11)=MOD(313,11)=5
根据校验值对应表,可知C=7,该人员身份证号码为:320105198209275127
又如:某男性公民身份证号码的本体码为34052419800101001
Y = mod(S, 11)=MOD(189,11)=2
查表得该人员身份证号码为:34052419800101001X
http://www.heybrain.com/notheal/article/1138.html
分享到:
相关推荐
本函数提供18位身份证校验位的计算方法,输入前17位即可得到第18位的校验码!
这个方法首先检查身份证号码的长度,然后逐位计算乘积并求和,接着计算校验码,并与身份证号码的最后一位进行比较。如果两者相符,则身份证号码有效。 在实际应用中,你还可以添加更多的错误处理和异常处理机制,以...
通过 Excel 公共函数计算二代公民身份证号码末位校验码是基于 GB 11643-1999 和 IOS 7064 的计算规则,用于计算 18 位身份证号码的最后一位校验码。该计算规则将身份证号码前 17 位数字按照特定的加权因子计算,最后...
在中国大陆,公民使用的身份证...通过了解和应用这些PHP身份证校验码计算方法,开发者能够创建更加严谨的用户输入验证机制,确保数据的完整性和一致性。同时,这也是一种了解和实践中国身份证号码编码规则的好方式。
### 二、校验码计算方法 校验码的计算方法如下: 1. 将前17位数字与对应的权重相乘后求和。 - 权重数组为 [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]。 - 计算公式为:\[ S = \sum_{i=0}^{16}(A_i ...
用户可以输入18位身份证号码,程序会自动计算校验码并与输入的最后一位比较,如果一致则表明身份证号码有效,否则提示错误并显示正确的校验码。 在实际应用中,身份证校验广泛应用于各种领域,如银行开户、网络注册...
身份证号码是由十七位数字本体码和一位校验码组成。排列顺序从左到右依次为:六位数字“地址码”、八位数字“出生日期码”、三位数字“顺序码”和一位数字“校验码”。 “地址码”用来表示公民常住户口所在地区的...
校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。 公式如下: ∑(a[i]*W[i]) mod 11 ( i = 2, 3, ..., 18 ) (1) "*" 表示乘号 i--------表示身份证号码每一位的序号,从右...
通过对身份证号码结构的分析以及校验码计算公式的推导,我们能够确保身份证号码的有效性和准确性。这种校验方法广泛应用于各种系统中,确保用户提交的信息是准确无误的。开发者可以根据实际需求调整和完善这段代码,...
例如,可以通过检查身份证号码的长度是否为18位,以及最后一位是否符合校验码计算规则来初步判断。但是,这种检查方式并不完全准确,因为它无法验证行政区划代码和出生日期的正确性。 为了更精确地验证身份证号码,...
4. **校验码**:对于18位身份证号码,第18位是根据前17位计算得出的校验码。 #### 四、正则表达式的构建 根据以上规则,我们可以构建出一个符合中国身份证号码格式的正则表达式: ```java String regex = "^(\\d{15...
中国居民身份证校验码算法如下: 将身份证号码前面的17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 将这17位数字和系数相乘的结果相加。用加...
* 18位号码加权因子为(从右到左) Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2,1 ] * 验证位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ] * 校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 ) * i...
### 二、校验码计算方法 校验码的计算公式如下: \[ \text{校验码} = (\sum_{i=1}^{17} d_i \cdot w_i) \mod 11 \] 其中: - \(d_i\) 表示身份证号码中的第\(i\)位数字。 - \(w_i\) 是对应的加权因子,具体值为7, 9...
- 计算公式:从右向左(包括校验码),第i位数字乘以对应的加权因子Wi(第18位至第1位的加权因子分别为7、9、10、5、8、4、2、1、6、3、7、9、10、5、4、2),然后将乘积累加。 - 累加和S除以11得到余数Y。 - ...
身份证和银行卡号码的最后一位都是用前面的数字计算而来的校验码,所以可以在一定程度上减少误输入的可能。 此文件包含身份证、19位银行卡号码校验,年龄提取,性别提取的公式。 使用方式,非常简单,打开此文件,...
4、校验码计算步骤 (1)十七位数字本体码加权求和公式 S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前17位数字的权求和 Ai:表示第i位置上的身份证号码数字值(0~9) Wi:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ...
2. **校验码计算**: - 校验码的计算涉及到前17位数字,通过一个特定的加权公式计算得出,这个公式涉及到加权因子和模11运算。 - 加权因子依次为:7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2。 - 模11运算后得到的余数...
- **18位身份证号**:现行身份证号,由6位地区码、4位年份、2位月份、2位日期、3位顺序号和1位校验码组成。 #### 提取出生日期 **公式1**: ```excel =IF(LEN(A1)=18,DATEDIF(DATE(MID(A1,7,4),MID(A1,11,2),MID...
4. **校验码(第18位)**:用于验证身份证号码的有效性,采用特定的计算方法得出。 #### 三、身份证号码校验算法 1. **前17位加权求和** - 公式为:\( S = \sum_{i=0}^{16}(A_i \times W_i) \),其中 \( A_i \) ...