使用hashcat破解ZipCrypto加密压缩包遭遇Token length exception错误的解决方案咨询
看起来你在用zip2john提取ZipCrypto加密压缩包的哈希后,用hashcat暴力破解时遇到了Token长度异常的问题,这个报错通常意味着hashcat无法正确识别你提供的哈希格式,我来帮你排查下几个常见的问题点:
先检查哈希提取的完整性和正确性
你提供的哈希串里有省略号(...),如果这是你手动截断的,那大概率是问题核心——hashcat需要完整的哈希串才能识别,不能有任何截断或修改。正确的做法是直接用zip2john your_archive.zip > test2.txt命令提取,确保生成的文件里只有完整的一行$pkzip2$...$/pkzip2$格式的哈希,没有多余的文件名注释、换行或空格。如果zip2john输出了额外内容(比如压缩包内的文件名),记得只保留纯哈希部分。确认hashcat的哈希类型参数是否匹配
你用的-m17220是PKZIP (ZipCrypto)对应的哈希类型编号,这个是标准正确值,但可以再验证一下:运行hashcat --help | grep -i pkzip,查看当前hashcat版本对应的ZipCrypto编号是否确实是17220(极少数情况下不同版本会有编号调整)。尝试针对压缩包内单个文件提取哈希
如果你的压缩包包含多个文件,zip2john可能会提取出多段哈希或者格式异常的内容。可以尝试指定压缩包里的某一个文件来提取,比如:zip2john your_archive.zip file_inside_zip.txt > test2.txt用单个文件的哈希来测试,看是否还会出现同样的错误。
更新hashcat到最新版本
老版本的hashcat对某些特殊加密的ZipCrypto压缩包支持可能不完善。替换成最新稳定版的hashcat后,再尝试破解操作。
另外,你提供的错误信息和命令我整理如下,方便对照排查:
Hashfile './test2.txt' on line 1 ($pkzip...bc56acf6bdb6a88836228b*$/pkzip2$): Token length exception
- Token length exception: 1/1 hashes This error happens if the wrong hash type is specified, if the hashes are malformed, or if input is otherwise not as expected (for example, if the --username option is used but no username is present)
No hashes loaded.
你使用的破解命令:
hashcat.bin -a3 -m17220 ./test2.txt ?a?a?a?a?a?a?a?a?a?a
备注:内容来源于stack exchange,提问作者Ilham Yassin

