TC/VC加密容器的密码破解(二):测试验证
原创
MicroPest
MicroPest
MicroPest
2026年11月11日 00:14
安徽
去阅读
接着《TC/VC加密容器的密码破解》继续聊聊这个。
以Truecrypt为例:
它提供了8种加密算法,分别为:3种单加密(AES/Serpent/Twofish)、3种双混加密(AES-Twofish/Serpent-AES/Twofish-Serpent)、2种三混加密(AES-Twofish-Serpent/Serpent-Twofish-AES)。
哈希算法3种:Ripemd-160/SHA-512/Whirlpool。
二、加密算法和哈希算法两者的关系
TrueCrypt/VeraCrypt 卷里有两个相互独立、缺一不可的密码学选择:
- 哈希算法
→ 决定\"怎么从密码得到密钥\"(密钥派生,KDF)
* 加密算法
→ 决定\"怎么把密文解开\"(XTS 加密/解密)
两者都必须与卷创建时的设置一致,任何一个选错,解密都会失败。所以\"起决定作用\"的其实是两个,不只是加密算法。
三、测试
我们完成了单加密算法、双混加密算法、3混加密算法共8种组合,以及3种哈希算法的字典密码破解测试。
1、全部用法:
python truecrypt\_veracrypt\_decrypt.py -h
usage: truecrypt\_veracrypt\_decrypt.py [-h] {extract,verify,crack,decrypt} ...
TrueCrypt/VeraCrypt 解密工具(纯 Python 实现,无第三方依赖)
positional arguments:
{extract,verify,crack,decrypt}
extract 从容器提取 hash(等同 truecrypt2hashcat.py)
verify 验证密码
crack 从单词表破解
decrypt 解密数据(已知密码)
options:
-h, --help show this help message and exit
2、字典破解---用法:
python truecrypt\_veracrypt\_decrypt.py crack -h
usage: truecrypt\_veracrypt\_decrypt.py crack [-h] [--type {truecrypt,veracrypt}] [--kdf {ripemd160,sha512,whirlpool}][--xts {512,1024,1536}] [--iterations ITERATIONS] [--pim PIM] [--boot][--keyfile KEYFILE] --wordlist WORDLIST [--hash HASH] [--offset OFFSET][--backend {cpu,gpu,auto}] [--device DEVICE] [--jobs JOBS][--hashcat-path HASHCAT\_PATH] [--timeout TIMEOUT][container]
3、测试结果,截图如下(单加密/双混加密/3混加密破解)
如1:3混加密算法的破解+RipeMD-160哈希算法(默认选择,上图)
python truecrypt\_veracrypt\_decrypt.py crack --type truecrypt --wordlist wordlist.txt 7-serpent-twofish-aes-whirlpool (用CPU破解)
FOUND: tl!qax@wsx-serpent-twofish-aes-whirlpool
如2:3混加密算法的破解+whirlpool哈希算法(下图)
破解结果如下图:
python truecrypt\_veracrypt\_decrypt.py crack --type truecrypt --wordlist wordlist.txt --backend gpu 7-serpent-twofish-aes-whirlpool (用GPU破解)
FOUND: tl!qax@wsx-serpent-twofish-aes-whirlpool
通过测试,可以看出来,我们已完成了Truecrypt(VC应该也一样)容器文件的密码破解(理论上所有都可以,但密码字典要包含密码在内)。
四、速度
实测 crack 的实际破解速度(纯 Python 实现的 PBKDF2 是主要开销),用官方向量在不同配置下测量每个密码的耗时,换算成\"次/秒\"。
1、CPU速度测算
| 配置 | 词/秒 | 换算 |
|---|---|---|
TrueCrypt XTS512(显式 --kdf ripemd160 --xts 512) |
~17.7 | 1000 词 ≈ 57 秒 |
| TrueCrypt XTS1536(三级联,显式) | ~11.3 | 1000 词 ≈ 89 秒 |
| TrueCrypt 自动检测(正确密码命中即停) | ~11.3 | — |
| TrueCrypt 自动检测(错误密码,最坏情况) | ~0.23 | 1000 词 ≈ 72 分钟 |
| VeraCrypt XTS512(显式,655331 次迭代) | ~0.15 | 1000 词 ≈ 1.8 小时 |
| VeraCrypt 自动检测(错误密码) | ~0.06 | 1000 词 ≈ 4.6 小时 |
使用建议
- 小单词表(<5000 词)的 TrueCrypt 卷,自动检测即可,几分钟内跑完。
- 大单词表或 VeraCrypt 卷:务必
--kdf(如--kdf sha512)+--xts显式指定,能省几倍到几十倍时间。 - 追求最高速仍应使用 hashcat式的GPU/OpenCL,本脚本定位是\"无依赖、可离线、教学/单机验证\"。
2、GPU 速度测算( RTX 3060 Laptop)
基准吞吐(「次/秒」= 每秒可尝试的密码个数;「每次耗时」= 试 1 个密码平均要多久):
| 类型 / 算法 | 速度 (次/秒) | 每次耗时 |
|---|---|---|
| TrueCrypt SHA512 XTS512 | 303,600 | 3.3 µs |
| TrueCrypt RIPEMD160 XTS512 | 196,800 | 5.1 µs |
| TrueCrypt RIPEMD160 XTS1536 | 78,600 | 12.7 µs |
| TrueCrypt Whirlpool XTS512 | 45,700 | 21.9 µs |
| VeraCrypt SHA512 XTS512 | 751 | 1.33 ms |
| VeraCrypt RIPEMD160 XTS512 | 703 | 1.42 ms |
| VeraCrypt SHA512 XTS1536 | 267 | 3.75 ms |
| VeraCrypt RIPEMD160 XTS1536 | 306 | 3.27 ms |
| VeraCrypt Whirlpool XTS512 | 121 | 8.26 ms |
| VeraCrypt Whirlpool XTS1536 | 12 | 83.3 ms |
换算关系:1 次/秒 = 1 H/s;µs=微秒(10⁻⁶ 秒),ms=毫秒(10⁻³ 秒)。XTS 位宽越大(512→1536)代表密码级联越复杂,速度越慢。
| 后端 | 速度 (次/秒) | 每次耗时 |
|---|---|---|
| GPU(hashcat) | 78,600 | 12.7 µs |
| CPU 单进程 | ≈0.43 | ≈2.32 秒 |
一句话结论:GPU 端在 TrueCrypt RIPEMD160 场景可达 7.8 万次/秒,在 VeraCrypt 多级联场景约 267~751 次/秒;相比纯 Python CPU 单进程,整体提升约 300 倍(常见卷)到 18 万倍(RIPEMD160 卷)。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论