身份证号是现代社会中最重要的人口信息识别方式之一。本文将从多个方面对15位身份证号进行详细的阐述。
一、身份证号的基本结构
1、身份证号是由17位数字码和1位校验码组成的。
2、15位身份证号只包含数字,不包含字母和特殊字符。
3、最后一位是校验码,并且只能是数字或者X,主要是用于检验身份证号码的真伪和准确性。
身份证号前6位:表示身份证发放的地区编码 身份证号7~12位:表示出生年月日,例如:910111表示:1991年1月11日出生 身份证号13~15位:表示本人出生的顺序码,是一个为男顺序号奇数,为女顺序号偶数的数字 15位身份证号码不存在校验码
二、身份证号的意义
身份证号是居民个人的唯一识别标志,包含了居民的个人信息和社会属性信息。
1、地区编码:前6位数字代表身份证发放的行政区域,不同的编码代表不同的省份、城市、县区等行政区域。
2、出生年月日:身份证号7~12位表示出生年月日,为年月日顺序组成,具体规则如下:
年份前两位“19”或“20”表示出生所在的世纪 年份后两位表示出生所在世纪的年份 月份是两位数字,不足10的数字前面加“0” 日也是两位数字,不足10的数字前面加“0”
3、顺序码:身份证号13~15位是本人出生的顺序码,是一个为男顺序号奇数,为女顺序号偶数的数字,通常为000-999之间的随机数,用来区分同一地区、同年月日出生的人。
三、身份证号的使用
身份证号常被用于各种场合,如中华人民共和国公民办理公务、落户、报名参加公共考试、办理各种证件、加入社会团体、投票选举等。除了它的唯一性外,身份证号还能反映个人的出生日期、性别、籍贯等信息。
四、身份证号的重要性
身份证号是个人身份认证的重要标志,也是公共信息资源的重要组成部分。通过身份证号可以受获得个人的基本信息,如姓名、性别、出生日期、籍贯、文化程度、婚姻状况、职业等。此外,身份证号还有很多重要的作用,如防止身份冒用、保障人权和社会福利等。
五、如何生成身份证号
在实际应用中,对于需要大量生成身份证号的场合,我们需要结合相关算法来生成虚拟的身份证号。
生成规则: 1.前六位数为取值范围内的随机数,代表了身份证号的所属地; 2.紧接着的八位数为随机产生的日期,范围限定在19300216~20000228(这里做例子范围略有调整),是代表了身份证持有人的出生日期; 3.最后三个数字,这也是一个随机的产生过程,这些数字常设为000,最后一个是校验位。其中,校验位是用来检验身份证号码是否符合规范的,计算公式为 Cn=Mod((C1×W1+C2×W2+C3×W3+C4×W4+C5×W5+C6×W6+C7×W7+C8×W8+C9×W9+C10×W10+C11×W11+C12×W12), 11) Yn = 验证码对应值,这里不能直接赋值为大于10的数字,所以需要做一下转换,转换关系如下: 0,1,2,3,4,5,6,7,8,9,10 => 1,0,X,9,8,7,6,5,4,3,2
代码示例:
public createID() { const code = []; const dbo = [ [3, 7, 9, 10, 5, 8, 4, 2], [5, 8, 4, 2, 1, 9, 7, 3, 6, 10, 5, 8, 4, 2] ]; const randomCity = this.changeCity[Math.floor(Math.random() * this.changeCity.length)]; const randomYear = this.getRandomInt(1940, 1999).toString(); const randomMonth = this.getRandomFromZero(12).toString().padStart(2, '0'); const randomDay = this.getRandomFromZero(28).toString().padStart(2, '0'); const random = this.getRandomInt(0, 999).toString().padStart(3, '0'); code.push(randomCity, randomYear, randomMonth, randomDay, random); let regArr = code.join().toString().split(''); let total = 0; for (let index = 0; index < 17; index++) { total += dbo[(index % 2)][regArr[index]]; } const finalCode = (11 - (total % 11)) % 11; let checkCode = ''; switch (finalCode) { case 10: checkCode = 'X'; break; default: checkCode = finalCode.toString(); break; } code.push(checkCode); return code.join(''); }