作为测试,我从百度上找了一张别人的身份证
从火车票中,大概可以获取以下信息
姓名 马子章
性别 男 (18位身份证倒数第二位为顺序码,顺序码为奇数为男性,偶数为女性)
不完整身份证号:3702031988****8611
通过以下程序可以生成一批可能是他的身份证号
#coding:utf-8
import time
# 身份证号 3702031988****8611
# 姓名 马子章
s="3702031988****8611"
sfz = [s.replace('****',j[4:]) for j in [time.strftime('%Y%m%d',time.localtime(i)) for i in range(int(time.mktime(time.strptime(s[6:10]+'0101','%Y%m%d'))),int(time.mktime(time.strptime(s[6:10]+'1231','%Y%m%d')))+1,3600*24)] if s[-1] == '10X98765432'[sum(map(lambda x: int(x[0]) * x[1], zip(s.replace('****',j[4:]), [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]) )) % 11]]
for i in sfz:
print i
生成的号码如下:
370203198801048611
370203198801128611
370203198801208611
370203198802198611
370203198802278611
370203198803078611
370203198803158611
370203198803238611
370203198803318611
370203198804038611
370203198804118611
370203198805188611
370203198805268611
370203198806068611
370203198806148611
370203198806228611
370203198806308611
370203198807028611
370203198807108611
370203198807298611
370203198808098611
370203198808178611
370203198808258611
370203198809058611
370203198809138611
370203198809218611
370203198810198611
370203198810278611
370203198811078611
370203198811158611
370203198811238611
370203198812038611
370203198812118611
现在需要在这些里面找到和 马子章 对应的身份证号。
通常一些实名认证的网站通常可以做到(以NATAPP举例):
在我的账户 → 实名认证
如果姓名和身份证号码对应,如下图所有(请注意粉红色提示语):
如果你的身份证号和姓名不符合,则如下图所示:
所以,坐火车记得保管好你的票
仅作技术交流,勿用作非法用途!