网管小贾 / sysadm.cc
随着医院 ICU 室传出一阵电波的长鸣声,一位老人与世长辞。
虽然他走的时候平静而安详并没有太过痛苦,但是一直守在室外的子女们却开始了新一轮高分贝的争吵。
形成如此鲜明的反差,不用说,肯定是为了老人遗产的分配问题!
可是令人称奇的是,这司空见惯的家庭遗产争夺战居然打到了简睿的面前......
听完负责调解纠纷民警的来意后,蔡学飞仍一头雾水,他有些质疑到来的民警是否找错了人,笑称官司怎么还打到我们这儿了。
原来啊,这位刚去世的老人的确留有一笔不小的财产,生前将这笔钱放在了一个新开的银行账号里。
因为怕银行账号和密码丢失又怕被人窃取,老人就将相关信息保存到了电脑中,并且将文件压缩打包,还加上了密码。
蔡学飞和简睿从民警提供的照片中看到,的确是一个 Zip 压缩文件。
民警接着说,老人生前一直是小女儿照顾,打算将财产都留给小女儿。
可是他的大儿子听说后表示强烈不满,于是要求老人也要分其一部分财产。
老人的大儿子平时就对老人不管不问,自从知道有财产一事,后来变本加厉还天天逼老人交出文件密码。
老人家是不胜其扰、苦不堪言啊!
还好加密文件保存在了一个安全的地方,仅仅说出密码还不能真正地转移这笔财产。
思索再三,最终迫于无奈,老人只好说出密码,这才消停了好一阵。
可是如今老人去世,这大儿子就又跳出来嚷嚷着要分财产,口口声声说自己有老人的文件密码。
然而老人的小女儿也同样声称自己也拥有文件密码,说老人生前就承诺将财产全部留给了她。
很显然,这位老人不可能将全部财产同时分给两个人,因此民警将二人带到警局分开调查询问。
结果令人啧啧称奇的是,这两个人手上的密码居然并不相同。
如下,是大儿子的密码。
pkH8a0AqNbHcdw8GrmSp如下,是小女儿的密码。
Nev1r-G0nna-G2ve-Y8u-Up-N5v1r-G1nna-Let-Y4u-D1wn-N8v4r-G5nna-D0sert-You这一下就给民警整不会了,咋还出来两个不同的密码?
虽说这些密码看上去都挺古怪,但古怪并不能说明谁就一定有效正确。
有人就说了,拿老人的压缩文件来解密试试不就知道了!
心动不如行动,哥几个就开始忙乎开了,拿到老人的加密文件后这么一试不要紧,结果给这哥几个彻底整懵逼了。
怎么回事?
两个完全不同的密码,怎么看都不一样的密码,居然都可以成功解开老人的加密文件!
“同一个 Zip 压缩文件可以存在两个有效解压密码?“
“不能吧?见鬼啦!”
”可是结果大家伙儿不都看到了嘛!“
哥几个是你一言我一语,叽叽喳喳说个不停,然而就是没有个定论,案情一度陷入僵局。
最后有人提出了,这电脑系统的玩意咱又不懂,还是有请高人吧!
这正是整个案情的来龙去脉!
蔡学飞听罢一拍大腿:”嘿!有意思哈!这位老人家莫不是电脑大神,要不他就是背后有高人,他咋知道有两个密码的?师傅,你看...“
再一瞅简睿,并没有答话,一直在一旁静静地听着。
等民警说完,他扶了扶眼镜,微笑着说:“原来如此,我记得 Zip 文件好像是有可能同时拥有两个不同密码的!”
民警听闻顿时眼前一亮:“老简,我就知道找你找对了!赶快说说,怎么回事?”
蔡学飞一看有戏,马上立在师傅一旁,倒要看个究竟。
关于 Zip 压缩文件有两个密码这事,简睿解释道,这并不算是程序的漏洞,而是由于一种特殊情况造成的。
当用户提取文件,并输入了一个超过 64 字节的密码时,如果加密算法选择的是 AES-256 ,那么输入的密码不会被直接使用,而是会被应用程序计算成 SHA1 哈希值,然后用这个 SHA1 哈希值与正确密码比较,从而判断是否可以解压释放文件。
简单地说,用户输入的密码太长,导致程序多走了一步,将其哈希值当作了密码。
图形操作,打包压缩文件,或是使用命令行,效果都是一样的。
在这次案情中,小女儿手里的密码就是一个超过 64 位的长密码。
Nev1r-G0nna-G2ve-Y8u-Up-N5v1r-G1nna-Let-Y4u-D1wn-N8v4r-G5nna-D0sert-You当使用这个密码解压缩文件时,Zip 应用程序就会计算它的 SHA1 哈希值。
706b4838613041714e62486364773847726d5370可以使用一些在线工具查看验证,也可以下载使用文末提供的网管小贾自制工具。
最后将这个 SHA1 哈希值由每两位为一个单位的 16 进制数值“翻译”成 ASCII 码,就产生了另一个明文密码,也就是案情里大儿子手里的那个密码。
比如,70 的 ACSII 码对应的字符就是小写的字母 p ,6b 就是小写的字母 k ,以此类推,简单吧?
pkH8a0AqNbHcdw8GrmSp于是结果就成了,不管是小女儿的密码,还是大儿子的密码,都可以正确成功地将老人的加密文件给解压缩出来。
说到这儿,蔡学飞兴奋地忍不住插了句嘴:“这好嘿!要是这样,那以后可以多搞些成对的密码啦!”
简睿摆了摆手、摇了摇头:“那可没那么容易!”
造成这种特殊情况需要几个前提条件。
用户输入的密码必须大于 64 位,应用程序才会启动计算并产生 SHA1 哈希值。加密算法必须要使用 AES-256 。产生的 SHA1 哈希值必须可以转换成可显的 ASCII 码,不可显的 ASCII 码(看上去像问号的乱码)并没有意义。我们来张动图加深一下印象,如果还有怀疑可以自行测试哦!
我自制了一个小工具,但受到哈希算法不可逆所限,实际使用中我们是无法反向获取字串密码的。
作为演示测试,分享给小伙伴们学习研究。
网管小贾的 ZIP 多重密码生成器
XJZipMultiPassword.7z(7.59K)
下载链接:https://pan.baidu.com/s/1LQNC75dgj5QsAKMHjNjY8Q
提取码:<关注公众号,发送 000984>
虽然完美地解释了案情问题的前因后果,然而,故事并没有结束!
蔡学飞咧嘴说笑,可一旁的民警听完简睿的讲述后,忽然皱起了眉头:“俩都算是正确的密码?那老人的财产究竟应该给谁呢?这下又难办了!”
这显然已经不是技术问题了,正在大家陷入沉思之时,民警的手机突然响了起来。
接完电话,民警露出了久违的笑容,兴奋地宣布案情有结果了!
最终警方从某公证处确认了老人生前公证过的遗嘱,上面白纸黑字清清楚楚地写着,小女儿持有的密码才是唯一有效的,小女儿也是遗产唯一的继承者。
至此,众人心里的疙瘩解开了,案情不但真相大白,结局也振奋人心、非常圆满!
将技术融入生活,打造有趣之故事。
网管小贾 / sysadm.cc