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

简介: 首先我在百度上找到了一个他人的火车票图片 接着从图片里我们可以获取到信息如下: 姓名 梅勇性别 男 (倒数第四位至倒数第二位3位数为顺序码,顺序码为奇数所以为男性)(可参考http://www.

首先我在百度上找到了一个他人的火车票图片

接着从图片里我们可以获取到信息如下:

姓名 梅勇
性别 男 (倒数第四位至倒数第二位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实现了一个有效性验证,代码如下:

 1 var sfz_qian="4201171988";
 2 var sfz_hou4="1638";
 3 var sfzhm="";
 4 for(i=1;i<=12;i++)
 5 {
 6   //为了程序的方便,我就假设每个月有31天
 7   for(j=1;j<=31;j++){
 8         if(i<10){
 9             if(j<10){
10                 sfzhm=sfz_qian+"0"+i+"0"+j+sfz_hou4;
11             }else{
12                 sfzhm=sfz_qian+"0"+i+j+sfz_hou4;
13             }
14             result=getvalidcode(sfzhm);
15                 if(result!=false){
16                         console.log(result);
17                 }
18  
19         }else{
20             if(j<10){
21                                sfzhm=sfz_qian+i+"0"+j+sfz_hou4;
22                         }else{
23                                sfzhm=sfz_qian+i+j+sfz_hou4;
24                         }
25             result=getvalidcode(sfzhm);
26                     if(result!=false){
27                   console.log(result);
28                     }
29  
30         }        
31  
32         }
33     }
34  
35  
36  
37 function getvalidcode(sfzhm_new){
38  
39 var sum=0;
40 var weight=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
41 var validate=['1','0','X','9','8','7','6','5','4','3','2'];
42 for(m=0;m<sfzhm_new.length-1;m++){
43 sum+=sfzhm_new[m]*weight[m];
44 }
45 mode=sum%11;
46 if(sfzhm_new[17]==validate[mode]){
47     return sfzhm_new;
48 }else{
49     return false;
50 }
51  
52 }

代码运行后如下:

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

相关文章
|
API 计算机视觉 Python
使用 Python 获取 B 站视频的播放量
使用 Python 获取 B 站视频的播放量
617 0
|
2月前
|
设计模式 存储 安全
并发设计模式实战系列(7):Thread Local Storage (TLS)
🌟 大家好,我是摘星! 🌟今天为大家带来的是并发设计模式实战系列,第七章Thread Local Storage (TLS),废话不多说直接开始~
86 0
|
8月前
|
存储 缓存 JavaScript
如何优化React或Vue应用的性能
需要注意的是,性能优化是一个持续的过程,需要根据具体的应用场景和性能问题进行针对性的优化。同时,不同的项目和团队可能有不同的优化重点和方法,要结合实际情况灵活运用这些优化策略,以达到最佳的性能效果。
289 61
|
11月前
|
机器学习/深度学习 数据可视化 网络架构
增强深度学习模型的可解释性和泛化能力的方法研究
【8月更文第15天】在深度学习领域,模型的准确率和预测能力是衡量模型好坏的重要指标。然而,随着模型复杂度的增加,它们往往变得越来越难以理解,这限制了模型在某些关键领域的应用,例如医疗诊断、金融风险评估等。本文将探讨如何通过几种方法来增强深度学习模型的可解释性,同时保持或提高模型的泛化能力。
1156 2
|
9月前
|
IDE 开发工具 数据安全/隐私保护
如何对PDF的加密和破解?
PDF文档的加密与暴力破解加密文档
221 0
|
Shell
删除右键“在 Visual Studio 中打开”选项
删除右键“在 Visual Studio 中打开”选项
2072 0
|
机器学习/深度学习 算法 Python
秒懂算法 | 回归算法中的贝叶斯
在本文中,我们会用概率的观点来看待机器学习模型,用简单的例子帮助大家理解判别式模型和生成式模型的区别。通过思考曲线拟合的问题,发现习以为常的损失函数和正则化项背后有着深刻的意义
461 0
秒懂算法 | 回归算法中的贝叶斯
|
SQL 前端开发 JavaScript
基于java+springboot的视频点播网站-在线视频点播系统
该系统是基于java+springboot开发的视频点播系统。是给师妹开发的课程设计。
616 0
|
缓存 安全 Java
【权限管理框架】一文看懂Shiro权限管理框架!1
【权限管理框架】一文看懂Shiro权限管理框架!