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组成的,不能全信。这也是法庭上很多电子证据,往往要求呈现原始载体的原因。

相关推荐
聪小陈2 小时前
圣诞节:记一次掘友让我感动的时刻
前端·程序员
百万蹄蹄向前冲8 小时前
2024不一样的VUE3期末考查
前端·javascript·程序员
陈哥聊测试1 天前
软件格局在变,谁能扛起国产替代的大旗?
安全·程序员·产品
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭2 天前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
少年姜太公2 天前
从零开始详解js中的this(下)
前端·javascript·程序员
凌虚2 天前
Kubernetes APF(API 优先级和公平调度)简介
后端·程序员·kubernetes
小华同学ai2 天前
ShowDoc:Star12.3k,福利项目,个人小团队的在线文档“简单、易用、轻量化”还专门针对API文档、技术文档做了优化
前端·程序员·github
小青鱼4 天前
AI编程-Cursor从入门到精通系列之常用概念及解释(二)
人工智能·程序员
捡田螺的小男孩5 天前
参数校验的十个建议!收藏好,别再给测试机会提bug~
java·后端·程序员
哔哩哔哩技术5 天前
B站装机系统实践:从初创到规模化的演进
前端·程序员