«

破解火车票上的身份证号码

时间:2015-7-13 23:09     作者:admin     分类: 技术文章


首先我在百度上找到了一个他人的火车票图片
huoche_1
接着从图片里我们可以获取到信息如下:

姓名 梅勇
性别 男 (倒数第四位至倒数第二位3位数为顺序码,顺序码为奇数所以为男性)
(可参考http://www.cnblogs.com/xudong-bupt/p/3293838.html)
来自 武汉市新洲区 (身份证号码前六位代表地区)
(可参考http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/200406/t20040607_38302.html)

身份证号码:4201171988xxxx1638

得到上述消息后,我们可以通过身份证号码验证算法对其进行有效性验证和排除。
(可参考http://www.cnblogs.com/xudong-bupt/p/3293838.html)

我用JS实现了一个有效性验证,代码如下:


var sfz_qian="4201171988";
var sfz_hou4="1638";
var sfzhm="";
for(i=1;i<=12;i++)
{
  //为了程序的方便,我就假设每个月有31天
  for(j=1;j<=31;j++){
        if(i<10){
            if(j<10){
                sfzhm=sfz_qian+"0"+i+"0"+j+sfz_hou4;
            }else{
                sfzhm=sfz_qian+"0"+i+j+sfz_hou4;
            }
            result=getvalidcode(sfzhm);
                if(result!=false){
                        console.log(result);
                }

        }else{
            if(j<10){
                               sfzhm=sfz_qian+i+"0"+j+sfz_hou4;
                        }else{
                               sfzhm=sfz_qian+i+j+sfz_hou4;
                        }
            result=getvalidcode(sfzhm);
                if(result!=false){
                  console.log(result);
                    }

        }       

        }
    }

function getvalidcode(sfzhm_new){

var sum=0;
var weight=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
var validate=['1','0','X','9','8','7','6','5','4','3','2'];
for(m=0;m<sfzhm_new.length-1;m++){
sum+=sfzhm_new[m]*weight[m];
}
mode=sum%11;
if(sfzhm_new[17]==validate[mode]){
    return sfzhm_new;
}else{
    return false;
}

}

代码运行后如下:

huoche_2

接着我们导出35条记录做为字典,拿到12306进行暴力添加常用联系人,最后我们得到了该图片上面的身份证号码了

huohce_3

文章来自网络.如有侵权,请联系管理员.


标签: 隐私窃取 黑客 12306 逆向

版权所有:Mrxn's Blog
文章标题:破解火车票上的身份证号码
除非注明,文章均为 Mrxn's Blog 原创,请勿用于任何商业用途,转载请注明作者和出处 Mrxn's Blog

扫描二维码,在手机上阅读
评论:
avatar
回味依旧 2015-08-18 21:52
这思路够暴力。。。
commentator
Mrxn 2015-08-18 22:21
@回味依旧:额 还好还好。。。有一些暴力!