去年帮朋友恢复一台旧笔记本,压缩开机卡在BIOS密码界面,密码硬盘里还有他大学四年的清除照片。他试了三十多个常用密码,工具连前女友生日都输了三遍。压缩最后我拆了主板,密码抠下CMOS电池等了十分钟,清除密码没了。工具他愣了半天,压缩说早知道这么简单,密码何必折腾一下午。清除
这事让我想起一个被忽略的工具事实:很多所谓的“密码保护”,其实只是压缩把密码存在某个芯片或文件里,根本没加密。密码清除它,清除跟撬开没上锁的抽屉差不多。
第一种是“伪加密”。ZIP文件有个结构叫“本地文件头”,里面有个2字节的标志位。正常压缩时这个位置是0,加密时改成1。有些工具只改这个标志位,数据本身没动。你把标志位改回0,解压软件就认为没密码了。我试过用十六进制编辑器手动改,找到“50 4B 01 02”后面的“09 00”,把09改成00,保存,再打开——密码框不弹了。整个过程不到两分钟。
第二种是真加密。数据用AES-256或者ZipCrypto算法打乱了,没有密钥就是一堆乱码。这种没法“清除”,只能暴力跑字典或者用已知明文攻击。我帮人跑过几次,八位纯数字的密码,用hashcat配合GPU,每秒几百万次,十几分钟出结果。但要是十二位混合大小写加符号,基本可以放弃。
上个月有个做设计的小姑娘找我,说前同事离职前给一个客户资料压缩包设了密码,没交接。她试了公司名、项目名、日期,全不对。我看了看文件,是RAR格式,创建时间2019年。问她前同事有没有什么习惯,她说那人喜欢用键盘上相邻的键,比如“qwerty”或者“1qaz2wsx”。我拿这几个变体跑了一下,三分钟就开了。密码是“qazwsxedc”。
她问我怎么做到的。我说这不是破解,是猜。真正的加密算法没被攻破,只是人太懒。
网上那些“压缩密码清除工具”,大部分只对伪加密有效。它们扫描文件头,找到加密标志位,改成未加密,然后另存一份。速度快,不伤数据。但如果你遇到的是真加密,这些工具会告诉你“无法清除”或者“需要字典攻击”。
有个叫“Ziperello”的老工具,支持暴力、掩码、字典三种模式。掩码模式挺实用,比如你知道密码是八个字符,前四位是字母,后四位是数字,可以设成“?l?l?l?l?d?d?d?d”,搜索空间从几万亿降到几百万。我用它跑过一个“admin+年份”的密码,掩码设成“admin?d?d?d?d”,两秒就出来了。
但别指望这些工具能对付强密码。AES-256的密钥空间是2的256次方,全宇宙的计算机加起来跑到热寂也跑不完。所以如果你真想保护文件,别用生日、手机号、键盘顺序。用一句你记得住但别人猜不到的话,比如“我家猫2018年阉了”。
有些在线“解密网站”声称能秒破压缩包密码。你把文件传上去,它确实给你返回一个解压后的文件。但那个文件可能被替换过,或者里面塞了广告。更糟的是,你的文件已经落在别人服务器上了。我从来不用在线工具,本地跑hashcat或者John the Ripper,慢是慢点,但数据不出门。
清除密码这事,本质是找漏洞。伪加密是设计漏洞,弱密码是人的漏洞。真正的强加密没有漏洞,只有时间和算力的较量。所以下次设密码,别偷懒。