我正在尝试生成一个单词表,以便使用它来暴力破解我自己的 Truecrypt 容器。我确实知道部分密码,它使用其他已知密码块来增加长度,但我忘记了这些块的使用顺序以及是否根本没有使用某些块。
用空格分隔的示例“块”:dog cat bird xyz cow1 lion8
我想做的是创建一个包含这些块的每个可能组合的单词表。例如
dog
cat
dogcat
catdog
bird
dogbird
catbird
birdcat
birddog
dogcatbird
catdogbird
xyz
dogcatbirdxyz
cow1
xyzcow1dogcat
xyzcow1dogcatbird
catdogbirdxyzcow8
lion8
catdogbirdxyzcow1lion8
lion8catdogbirdxyzcow1
dogcatbirdxyzcow1lion8
cow1birddogcatxyzlion8
cow1lion8birddogcatxyz
...
到目前为止,我已经尝试使用名为 crunch 的工具:http ://www.irongeek.com/i.php?page=backtrack-r1-man-pages/crunch
但挑战似乎是如何生成较短组合的组合,不包括所有已知的块,例如:dogcat
只包括 2 个块。
也许有人crunch
比我更了解,或者我是否应该使用其他工具或工具组合?
使用Python,
例子:
crunch
目前只支持排列,不支持组合。我建议使用perl
and执行此操作Math::Combinatorics
,例如:运行它
| shuf -n20
,输出有时是: