虚拟身份证号
介绍
背景
在日常生活中,什么阿妈阿狗的网站随便注册下就需要我们填写各种信息,这些网站很多是我们不值得信任的,我们不想给出敏感信息,并且这类的网站只会收集我们的信息并不会去验证真伪,非常恶心,个人信息是神圣不可侵犯的。这个功能是针对百度给的身份证算法基于的实现,用于学术交流,禁用非法用途。
需要特别说明的是,我们这个工具产生的身份证号码都是由公开的算法公式生成出来的,也就是假的。你不能拿这些虚假的信息去实名认证任何正规的流程(这些流程也会有自己的身份认证方式,非简单的计算身份证验证码,你是通不过的。同时是我们网站也禁止这样做的)
算法
大陆的居民身份证号码由18位数字和一个校验位组成。这18位数字包含了个人的一些基本信息,以及用于校验身份证号码合法性的校验位。以下是身份证号码的具体构成和规则:
- 前6位数字:这些数字代表了出生地的行政区划代码,通常对应于你出生地的行政区划。这6位数字并不是随机的,而是根据国家和地区的行政区划编码规则确定的。
- 接下来的8位数字:这8位数字代表了你的出生日期,格式为YYYYMMDD,其中YYYY表示年份,MM表示月份,DD表示日期。
- 之后的3位数字:这3位数字是顺序号,用于区分在同一出生日期和地点注册的人的顺序。
- 最后一位校验位:这一位用于验证前面17位数字的合法性。计算方法如下:
将前17位数字分别乘以对应的权重因子(从左到右依次为7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2)。
将这17个乘积相加。
将相加的结果除以11,取余数。
根据余数的值,确定校验位的值。一般情况下,余数对应的校验位为:
0 对应1
1 对应0
2 对应X
3 对应9
4 对应8
5 对应7
6 对应6
7 对应5
8 对应4
9 对应3
10 对应2