PassphraseGen is a script for generating custom passphrase lists to be used for password cracking with hashcat rules like the ones found here: https://github.com/initstring/passphrase-wordlist.
Included in this repo are a few wordlists located in the "lists" folder that can be used to generate passphrases including the top English words, an EFF passphrase wordlist, and the Bitcoin BIP-039 seed wordlist.
There is also an option that allows for selecting a number of random words from a list for use with the tool. The more words you have in your list the greater amount of time it will take the tool to generate the passphrases. See the "Sample Benchmarks" section below for some example run times.
Provided a list of the following four words the script will generate the following passphrases:
hacker password pwnage noob
hacker password pwnage noob hacker password noob pwnage hacker pwnage password noob hacker pwnage noob password hacker noob password pwnage hacker noob pwnage password password hacker pwnage noob password hacker noob pwnage password pwnage hacker noob password pwnage noob hacker password noob hacker pwnage password noob pwnage hacker pwnage hacker password noob pwnage hacker noob password pwnage password hacker noob pwnage password noob hacker pwnage noob hacker password pwnage noob password hacker noob hacker password pwnage noob hacker pwnage password noob password hacker pwnage noob password pwnage hacker noob pwnage hacker password noob pwnage password hacker
This example will take a list of words and generate a passphrase list using four words in each passphrase.
Invoke-PassphraseGen -FourWords -Wordlist .\lists\top-100-english-words-4-chars-or-more.txt -OutputFile passphrase-list.txt
This example will take a list of words and select 25 random lines from it. Then using those 25 words it will generate a passphrase list using four words in each passphrase. A total of 20 threads will be utilized.
Invoke-PassphraseGen -FourWords -Threads 20 -TotalLines 25 -Wordlist .\lists\bitcoin-bip-0039-seed-words.txt -OutputFile passphrase-list.txt
Here are some sample benchmarks of generating passphrase lists with PassphraseGen on a fairly decent laptop... Your mileage may vary.
15 words, four-per-passphrase (Total of 32,760 passphrases) : 40 seconds --- ~800 KB 25 words, four-per-passphrase (Total of 303,600 passphrases) : 2 minutes 15 seconds --- ~8.07 MB 35 words, four-per-passphrase (Total of 1,256,640 passphrases) : 6 minutes 30 seconds --- ~27.3 MB 50 words, four-per-passphrase (Total of 5,527,200 passphrases) : 45 mins --- ~116 MB
ThreeWords - Use this switch to generate passphrases using only 3 words. FourWords - Use this switch to generate passphrases with 4 words. Wordlist - The input list of words that are to be used within passphrases. OutputFile - The file to output all the passphrases to. TotalLines - Use this option to specify a number of lines to randomly select from the wordlist for use within passphrases. Threads - Use this option to specify a number of threads. Uses 10 by default. SleepTimer - Time to sleep in between checking if a thread has finished or not.