通过一张火车票可以得到什么


title: 通过一张火车票可以得到什么
date: 2018-8-22 14:15:11
tags: MISC


通过一张火车票可以得到什么

摘要

假期回学校的时候,在火车东站被陌生人骗钱200块。报警之后也没有反馈。
自己太不小心了…QAQ小姐姐们一定要注意不要被坏人利用了自己的善良啊(
当时照了一张骗子出示的火车票。
虽然不一定是本人的…就试着看看通过一张火车票能查到什么。

身份证编码方式

火车票面上有个人完整姓名和少了四位出生日期的身份证号码。
票面上身份证号码是:
5001071997****2042
本来这里应该有一张图。但是找不到了orz。
身份证号码是由六位数字地址码+八位数字出生日期码+三位数字顺序码+一位校验码组成。

1、地址码
表示编码对象常住户口所在县(市、旗、区)的行政区域划分代码,
按GB/T2260的规定执行。

2、出生日期码
表示编码对象出生的年、月、日,按GB/T7408的规定执行,
年、月、日代码之间不用分隔符。

3、顺序码
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,
顺序码的奇数分配给男性,偶数分配给女性。

4、校验码

火车票打码部分是生日月份日期,则只有366种可能。
而通过校验码去除校验失败的号码后,还剩下30余可能的号码。

计算步骤:
(1)十七位数字本体码加权求和公式
  S = Sum(Ai * Wi), i = 0, … , 16 ,先对前17位数字的权求和
  Ai:表示第i位置上的身份证号码数字值(0~9)
  Wi:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 (表示第i位置上的加权因子)
(2)计算模
  Y = mod(S, 11)
(3)根据模,查找得到对应的校验码
  Y: 0 1 2 3 4 5 6 7 8 9 10
  校验码: 1 0 X 9 8 7 6 5 4 3 2
  
python代码:


#coding:utf-8
import time

# 身份证号 5001071997****2042
# 姓名 黄滟茹

s="5001071997****2042"

sfz = [s.replace('****',j[4:])# 将****替换为j数组的字符串
       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)

可以得到身份证可能的号码有:

	500107199701022042
	500107199701102042
	500107199701292042
	500107199702092042
	500107199702172042
	500107199702252042
	500107199703052042
	500107199703132042
	500107199703212042
	500107199704012042
	500107199704282042
	500107199705082042
	500107199705162042
	500107199705242042
	500107199706042042
	500107199706122042
	500107199706202042
	500107199707192042
	500107199707272042
	500107199708072042
	500107199708152042
	500107199708232042
	500107199708312042
	500107199709032042
	500107199709112042
	500107199710092042
	500107199710172042
	500107199710252042
	500107199711052042
	500107199711132042
	500107199711212042
	500107199712012042
	500107199712282042
	
	Process finished with exit code 0

验证身份证号码

1.尝试输入身份证号码在谷歌查询。
在谷歌试过搜索一些身份证号码,因为高中学校的数据库好像被脱过,找到过自己的个人信息orz。除了这个以外,谷歌上还保存着很多网页快照信息。包括现在学校的学生个人信息,也可以通过一些关键字搜索到一些Excel文件,然后甚至可以查到该生身份证,电话号码之类的隐私信息。(尤其是评奖评优的(。

2.实名验证api
网络上现在有很多各种用途的api。也有供实名验证的api。注意辨别数据库的来源。一般需要收费。会返回不同状态码来表示查询结果。

3.实名验证网站
最傻瓜式的是12306的常用联系人选项。
添加,输入姓名身份证信息,如果是真实的就会通过。
不过需要等一段时间才会有结果。如果验证通过则说明实名成功。
试了可能身份证号码的一大半,都没通过,也没接到公安的后续电话了,搞到后面不了了之了。

总结

火车票尽管做了一定模糊处理但是还是可以通过技术手段获取对方身份证号码。可能造成的危害有:

  1.实名身份被占用。注册某些服务的时候需要去重申。或者用于一些非法活动。
  2.查到更多个人信息,针对性的进行诈骗。
  3.进入社工库的身份证信息。可以用于如抢票软件等实名认证部分。
  ...

解决方法:
一个是个人注意票根隐私,不要乱扔。
希望12306给校验码部分打码。

猜你喜欢

转载自blog.csdn.net/qq_36360189/article/details/87902332