jxlwqq / id-validator.py

中华人民共和国居民身份证、中华人民共和国港澳居民居住证以及中华人民共和国台湾居民居住证号码验证工具(Python 版)
https://pypi.org/project/id-validator/
MIT License
360 stars 85 forks source link

请问能否实现按规则(日期、顺序码连续那种)批量生成身份证的功能?有需要但一直没找到合适的工具 #22

Closed skycloudly closed 2 years ago

skycloudly commented 2 years ago

请问能否实现按规则(日期、顺序码连续那种)批量生成全部可能的身份证的功能?有需要但一直没找到合适的工具 比如根据参数设定,生成山东省1994出生的男性身份证、生成2022年1月1日江苏18-60周岁的人口

jxlwqq commented 2 years ago

外面套一层for循环?

skycloudly commented 2 years ago

@jxlwqq 不不,这个软件是随机生成的单个身份证号码。for循环出来的仍然是随机的, 地区码、日期和顺序码并不连续。会出现重复和遗漏的情况,影响效率。

jxlwqq commented 2 years ago

for循环自己造,看下最后一位的校验逻辑就行了。

skycloudly commented 2 years ago

随机生成的话,遗漏、和重复的情况怎么避免?重复的话还可以去重,遗漏很难处理。 看最后一位的校验逻辑一样会有遗漏吧?

jxlwqq commented 2 years ago

不随机生成,伪造的函数,不是可以传参么?

skycloudly commented 2 years ago

难点在于地区的随机性(县级市、地级市、而且中间的行政区划可能变动过多次), 比如生成江苏省出生的男性身份证,前一个可能是南京的身份证、后一个可能就是连云港的,并不连续。 地区这种随机性大。中间的行政区划变动会导致遗漏。

jxlwqq commented 2 years ago

把地区列表提前拿出来,再套一层

skycloudly commented 2 years ago

顺序码也是随机的,可能会从11直接跳到100,从而产生遗漏。 虽说可以再给顺序码套一层,但是再给顺序码套的话,末位校验码能通过这个直接生成吗?

jxlwqq commented 2 years ago

自己在想想办法哦,思路已经给出。