Estou tentando gerar uma lista de palavras para usá-la para força bruta em meu próprio contêiner Truecrypt. Eu conheço partes da senha, ela é construída usando blocos de outras senhas conhecidas para aumentar o comprimento, mas esqueci em que ordem os blocos foram usados e se alguns blocos não foram usados.
Exemplo de "blocos" separados por espaço:dog cat bird xyz cow1 lion8
O que eu gostaria de fazer é criar uma lista de palavras contendo cada combinação possível desses blocos. Por exemplo
dog
cat
dogcat
catdog
bird
dogbird
catbird
birdcat
birddog
dogcatbird
catdogbird
xyz
dogcatbirdxyz
cow1
xyzcow1dogcat
xyzcow1dogcatbird
catdogbirdxyzcow8
lion8
catdogbirdxyzcow1lion8
lion8catdogbirdxyzcow1
dogcatbirdxyzcow1lion8
cow1birddogcatxyzlion8
cow1lion8birddogcatxyz
...
Até agora tentei utilizar uma ferramenta chamada crunch: http://www.irongeek.com/i.php?page=backtrack-r1-man-pages/crunch
Mas o desafio parece ser como se deve gerar combinações de combinações mais curtas, não incluindo todos os blocos conhecidos, exemplo: dogcat
inclui apenas 2 blocos.
Talvez alguém saiba crunch
melhor do que eu, ou se devo usar outra ferramenta ou combinação de ferramentas?
Com Python ,
Exemplo:
crunch
atualmente suporta apenas permutações e não combinações. Eu recomendo fazer isso comperl
eMath::Combinatorics
, por exemplo:Execute-o com
| shuf -n20
, a saída às vezes é: