最近有很多读者朋友对12306身份证号码隐藏了怎么看有疑问。由部分网友整理出相关内容希望能够解答你的疑惑,关于12306身份证号码隐藏了怎么看携程,本站也已经为你找到了问题的答案,希望能帮助到你。
大家好,我是郭立员,今天继续我们按键脚本的分享。
马上要到年底了,忙忙碌碌又一年,总要回家过个年,到时候朋友圈晒吃晒喝千万不要晒车票。
为啥不能晒车票,因为上面有身份证号码。

图片来自网络,号码和名称已做处理
可以看到火车票上有姓名和身份证号码,细心的朋友可能会发现身份证号码中有四位是以*代替的,这么做也是为了防止身份信息泄露。
但是对于会点编程的人来说, 遍历出符合要求的号码还是不难的。
是不是想知道怎么写代码,在讲这个之前先要知道我们身份证号码中的数字都代表什么。

我们身份证号码是唯一的,即便是双胞胎同年同月同日出生,由于登记序号和校验码不同,身份证号码也是不同的。
这里给大家找了一个生成最后一位校验码的计算方法:

回看我们刚刚那张车票上的身份信息:
1503041992****3013 王小明
姓名:王小明
地址:内蒙古乌海市乌达区
出生于:1992年
月日被星号隐藏了。
如果想要得到完整的身份证号码,可以通过遍历所有月份和日,代码如下:
Dim 地址=150304Dim 年=1992Dim 月,日Dim 序号=30Dim 性别=1Dim 尾数=3Dim wi=array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1)Dim x=array(1,0,"X",9,8,7,6,5,4,3,2)For m=1 To 12 Dim 求和=0 Dim 天数=getday(m,年) For n=1 To 天数 月=Right(0 & m, 2) 日=Right(0 & n, 2) Dim 前17=地址&年&月&日&序号&性别 If getlast(前17)=尾数 Then TracePrint 前17&尾数 End If NextNextFunction getday(i,y) If i=1 or i=3 or i=5 or i=7 or i=8 or i=10 or i=12 Then getday=31 ElseIf i=4 or i=6 or i=9 or i=11 Then getday=30 ElseIf i=2 Then If y mod 4=0 Then getday=29 Else getday=28 End If End If End FunctionFunction getlast(a17) Dim m Dim wi=array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1) Dim x=array(1,0,"X",9,8,7,6,5,4,3,2) For i=1 To 17 m=m + UTF8.StrGetAt(a17, i) * wi[i] Next Dim k=m mod 11 getlast=x(k)End Function
当然这种方法算出来有34个符合要求的日期:

一下子排除了九成的不符合要求的号码。
剩下的34个号码去12306核对一下,很容易就知道哪个是正确的身份证号码了。
所以提醒大家不要在朋友圈晒车票了,即使晒了也要注意打上马赛克。
最后温馨提示,本文仅供学习,违法的事儿不要做,小心警察蜀黍查水表。
主题测试文章,只做测试使用。发布者:艾迪号,转转请注明出处:https://www.cqaedi.cn/fenxiang/18431.html