-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
公民身份证号码的正则表达式要点 #271
Labels
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
身份证正则校验
校验省份
校验年月日合理性
校验身份证是否合理(松散,主要校验最后一位校验码)
校验外国人永久居留身份证
算算身份证号重复的概率
如果要两个人身份证号相同,首先要保证两个人在同一个地区保证身份证号前六位相同,接下来需要有相同的生日,保证中间八位相同 ,还剩下最后四位,而最后一位校验码的出现是取决于前 17 位的,所以只有第十五到十七位三个数字是可变化的,那能承载多少人呢?
第十五位和十六位为随机数,均可出现 10 中可能,第十七位由于性别奇偶之分,只有 5 中可能,所以可得出下面的算式。
我是男性,从上面可以看出来,如果在我所出生的区(身份证前六位精确到区县)并且在我出生的那一天有 501 个男孩出生,如果保证身份证位数恒定 18 位不增加且只允许数字情况下,肯定有两个人要撞身份证号,所以与我撞身份证号的可能性即为五百分之一。
现实数据统计
我查了一些资料,中国 2018 年全年出生人口 1523 万人,2017 年出生人口约为 1723 万,2016 年约为 1786 万,这里就当做每年出生人口为 1700 万,中国一共有超过 2800 多个县区,那我们来算一算大概一个区县每天平均有多少人出生呢?
平均每天每个区县有 17 个新生儿,有一些人口密集的地方超平均数 10 倍或者 20 倍,也可看出来也离 500 个差距甚远,所以可得出结论基本没有可能两个人身份证号会相同,如果人口真到非常庞大的时候 ,身份证号也会相应增加位数或者引入英文字母来规避号码相同的问题。
中心化机构
这里从上面身份证号关于重复的计算可以看出,先有了户籍管理部门来制定好一些规则,然后地方的实施者(派出所)再按照规则去生成每个人的身份证号,在这里抛出了最关键的一个点,中心化的户籍部门。
自动生成指定规则的身份证号码
参考
The text was updated successfully, but these errors were encountered: