一、身份证号码的结构
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
1、顺序码
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
2、校验码与其算法
(1)十七位数字本体码加权求和公式
S = Ai * Wi, i = 2, ... , 18
Y = mod(S, 11)
i: 表示号码字符从右至左包括校验码字符在内的位置序号
Ai:表示第i位置上的身份证号码字符值
Wi:表示第i位置上的加权因子
i: 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
(2)校验码字符值的计算
Y: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2
二、js实现
/**
* 从18位/17位身份证号算出校验位
* @param idCardNO
* @return string
*/
function BASE_getCheckDigit18( idCardNO){
//权重值
var VERIFY18RIGHTS = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
var VERIFY18_CHECKDIGIT = "10X98765432";
var sum = 0;
for(var i = 0; i <= 16; i++){
sum += parseInt(idCardNO.charAt(i)) * VERIFY18RIGHTS[i];
}
//对权重值取模
return VERIFY18_CHECKDIGIT.charAt(sum % 11);
}
三、类似问题
编码在出版业的应用,给定日期算出星期几 取七为模mod(7)
分享到:
相关推荐
本函数提供18位身份证校验位的计算方法,输入前17位即可得到第18位的校验码!
### SQL15位和18位公民身份证校验函数知识点详解 #### 一、背景介绍 在进行数据录入时,确保身份证信息的合法性至关重要。不正确的身份证信息将导致数据的有效性和准确性大打折扣。为此,设计了一款专门用于校验15...
下面将详细阐述18位身份证校验的相关知识点。 首先,身份证号码的第一位代表的是性别。奇数表示男性,偶数表示女性。接下来的六位是出生日期,格式为YYYYMMDD,即年份的后两位、月份和日期,例如19900101表示1990年...
### 新18位身份证校验代码详解 #### 一、背景介绍 在中国,居民身份证是每个公民的重要身份证明。为了确保身份证号码的有效性和准确性,中国实施了一套完整的校验机制来验证18位身份证号码的真实性。本文将详细...
身份证号码由17位数字本体码和1位校验码组成,总共18位。具体结构如下: 1. 地址码(6位):根据GB/T2260标准,这部分代表编码对象常住户口所在县(市、旗、区)的行政区划代码,反映了持证人的户籍所在地。 2. ...
身份证号码是中国公民身份识别的重要证件,其正确性...通过结合这些文件,可以构建一个完整的Delphi应用程序,该程序能够接收用户输入的身份证号码,进行校验位计算并显示校验结果,为业务处理提供可靠的身份验证支持。
本篇文章将详细解析如何使用SQL来实现18位身份证号码的校验位计算。 身份证号码的校验码计算基于特定的算法,该算法涉及到前17位数字与一系列系数的乘积之和,然后对结果进行模11运算。具体步骤如下: 1. **确定...
在编程实现身份证校验的过程中,通常会编写一个函数,输入18位身份证号,输出校验结果。这个过程可能涉及字符串处理、数学运算以及条件判断。例如,`身份证验证.vbp`和`身份证验证.vbw`可能是VB6工程文件,用于构建...
其中,第18位校验码是根据前17位计算得出的一个校验值,用于验证身份证号码的有效性。 ### 二、校验码计算规则 #### 计算步骤: 1. 将前17位数字本体码按位分别乘以不同的系数(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7,...
身份证校验码,也称为身份证号码的最后一位校验位,是用于确保身份证号码正确性的关键部分。在中华人民共和国居民身份证中,这个校验码是由前17位数字经过特定算法计算得出的,用于验证整个身份证号码的合法性。在本...
本文将深入解析MySQL数据库中实现的身份证校验函数——`CHECKIDCARD`。该函数能够有效地校验输入的身份证号码是否符合中国身份证的标准格式。 #### 二、函数定义与参数 ```sql CREATE DEFINER=`root`@`%` FUNCTION...
4. **校验码**:第十八位是校验码,用于验证身份证号码的有效性。 #### 校验码计算方法 校验码的计算基于前17位数字,并利用特定的权重因子(2, 4, 8, 5, 10, 9, 7, 3, 6, 1, 2, 4, 8, 5, 10, 9, 7)与这些数字相乘...
计算方法是:对前17位数字分别乘以对应的系数(系数为2^17到2^0,即128,64,32,16,8,4,2,1),然后将结果相加,再除以11,得到的余数对应校验码,如果没有余数,则校验码为0。如果余数是10,那么校验码用X表示,这是...
在这个案例中,“身份证的校验码 工具类”很可能是一个Java、Python、C#或其他编程语言的类,包含了一个或多个方法,用于根据输入的18位身份证号码的前17位计算出校验码。这个工具类对于需要验证身份证号码有效性的...
### VB编写的身份证校验程序知识点解析 #### 一、程序功能概述 该VB程序的主要功能是校验中国大陆居民身份证号码的有效性。中国大陆居民身份证号码分为两种格式:15位和18位。15位身份证号码现已停用,但为了兼容旧...
- 在数据处理类中封装身份证校验方法,供其他业务逻辑调用。 - 在单元测试中,编写测试用例确保身份证校验功能的正确性。 6. **扩展**: - 对于中国大陆以外的身份证号码校验,如港澳台地区的居民证,其格式和...
第三个关键点是身份证校验位的验证。18位身份证号码的最后一位是校验码,它是由前17位数字按照一定的算法计算得来的。工具根据身份证号码前17位数字,运用加权计算方法,得出最后一位的理论值,并与实际输入的校验码...