IT技术点:一个文件的创建、修改时间里隐藏的秘密

大家好,我是IT男。今天,我被一些业内的同行给震惊到了。一些我认为很基础的操作,让他们搞得神乎其神,低端技术高价盈利,就连月薪过万这种梦,也让他们不屑一顾。

我说我干活,按照一天600来报价。他们说,一天600是扰乱市场。

唉,确实软件工程师毕业一两年就可以轻松实现月薪过万。我清楚地记得2016年时,我在一家中小型企业任技术总监,我可以拿到部门人员清单。我们研发部60个人中,没有一个人的工资是低于五位数的。但是大家不知道,其他很多行业想要月薪过万,这是很难达到的。我问过一个卖烧饼的,他们从早上5点就来店里打酥油,晚上八点才收工。一周只休息一天,他们店长也不过月薪才6000元。

我从事互联网十多年,从最初在移动互联网写App,到现在人工智能搞算法,我一直奔走在技术的前沿。虽然我的技术不怎么样,但是最新的见闻还是有的。我始终觉得我们这些软件工程师是被捧起来的,身价存在严重的泡沫。大家都是熟练工,本质上和卖烧饼的不存在特别大的差异。只不过是资本市场的风口吹过互联网,但是没有吹向烧饼铺。

长期的行业经验,我还担任一些IT大赛的评委。因此,对于软件大赛我也有一些浅薄的指导经验。

前几天,有一个朋友找到了我。他发来一支参赛团队的答辩视频、PPT,以及项目源代码。当然,我不是这个比赛的评委。他只是想让我看看有没有硬伤,或者可以拔高的点。

我一看就发现了一个严重的问题。

其中最重要的一点就是源码文件的时间信息。这个比赛的赛期是今年3月到6月。但是他提供的项目代码中,最新的日期却是2022年12月份的。也就是说,这个团队是拿着老项目参加新比赛。或者说,还没开赛他们就写好了。

我说,这个项目的文件日期存在隐患。评委可以不关注,也可以特别关注。即便你们再优秀,单凭这一点,它无法让你们胜出,但是绝对有理由让你们直接淘汰。

朋友说,那怎么办?我告诉他,最好修改一下文件的属性信息。

因为在文件系统中,每个文件从创建到修改再到访问,是有时间线记录的。比如上图那个文件是"2022年12月24日 8:23:37"创建的。后来"2022年12月24日 9:18:09"修改过。最后,昨天晚上"2024年5月20日 21:34:08"被打开看过。

我告诉朋友,现在随便找一个文件属性修改工具,去给文件批量打一下时间标记,让时间落在比赛周期内。这并不是作弊,因为不好说是什么系统原因导致了时间错乱。不管怎么样,我们最好别漏出很明显的漏洞。

后来,朋友向我反馈说,你那个方法也不简单啊,这些软件收费,而且还好贵!

我一听不相信,就这点活儿也要钱?增加个粉丝赚个流量,或者再不济嵌个广告也就到头了。我一搜,还真是没有讲技术的,都是软件的广告宣传。

我说,我给你写个软件吧!

首先,读取文件的时间。

读取时间信息的活,总共就上面这点代码。这是读取了一张PNG图片得到的信息:

我们看到,它的时间信息是精确到了微秒,也就是百万分之一秒。因此,你对一个文件进行鉴定时,如果它的时间全是".000000",那么你要小心了。这可能是经过软件修改过的,而且修改的还不仔细。因为正常情况下,很难正常卡到".000000",这个时间恰巧需要百万分之一秒。

读取信息说完了,接下来我们要对文件时间进行设置。

同样代码也不多。而且很多代码是在处理微秒不为".000000"的问题。如果不主动设置微秒,则给出一个随机值。我们将文件的创建时间设置在1996年的05月20日,并且在1998年06月19日凌晨进行了一次修改。下面是修改以后再去查询的样子:

如果再细致些去查询的话,修改时间的值是1998-06-19 00:00:11.726002,是精确到微秒的。

这是对于一个文件,如果要批量操作,可以循环文件夹内的每个文件,单独设置。最好引入某个范围内的随机数,不要让所有文件都同一个时间。

另外,如果一个文件执行复制或者剪切操作,会出现怎样的情况呢?

还是拿上面1996年的图举例子。

如果是剪切,相当于文件挪了一个地方,文件依然还是那个文件。它的创建时间、修改时间是不变的。

但如果是复制,属于重新创建了一个新文件,创建时间会变成现在时间,修改时间不会改变。

这就存在一个奇怪的现象,文件明明是2024年创建的,但是在1998年修改过。

如果你不是程序员,不动代码能修改吗?可以,将系统时间调整到你想要的就可以。

比如,我们想生产一个2030年创建的文件。首先修改你电脑的系统时间。

然后对文件进行创建、复制或者修改,文件信息就会变为新设置的时间了。

因此,这些时间都是参考,一切文件都是由1和0组成的,不能全信。这也是法庭上很多电子证据,往往要求呈现原始载体的原因。

相关推荐
肖哥弹架构18 小时前
Spring 全家桶使用教程
java·后端·程序员
IT杨秀才4 天前
自己动手写了一个协程池
后端·程序员·go
程序员麻辣烫6 天前
像AI一样思考
程序员
一颗苹果OMG7 天前
关于进游戏公司实习的第一周
前端·程序员
万少7 天前
你会了吗 HarmonyOS Next 项目级别的注释规范
前端·程序员·harmonyos
楽码8 天前
彻底理解时间?在编程中使用原子钟
后端·算法·程序员
江南一点雨8 天前
又一家培训机构即将倒闭!打工人讨薪无果,想报名的小伙伴擦亮眼睛~
java·程序员
用户86178277365189 天前
ELK 搭建 & 日志集成
java·后端·程序员
河北小田9 天前
局部变量成员变量、引用类型、this、static
java·后端·程序员
文心快码 Baidu Comate9 天前
新一代的程序员如何培养自己的核心竞争力?(一)
人工智能·程序员·ai编程·文心快码·智能编程助手