HACKER Q&A
📣 GlassOwAter

Generate All Permutations of a Passphrase?


I cannot remember the exact typing of my old laptop's passphrase. It is encrypted, after an hour of random typing I got the passphrase once and am now stuck on my Linux Mint 17 or 18 login screen, faced with the same passphrase.

It's something like this:

SimplePhraseOfMine with the possibility of upper/lowercase and s=5 o=0 e=3

I've tried writing all variations by hand, but that is tedious and I've not gotten it. I tried messing around with Crunch wordlist generator, but that doesn't seem to do exactly what I need (keep that phrase intact).

Is there a program to do this?


  👤 andrewfhart Accepted Answer ✓
One option:

https://github.com/ryepdx/pyethrecover does something very similar to what you're asking for, in the context of remembering an ethereum wallet password. In your case, the password-spec file would probably contain something like:

``` [ ('S','s','5'), ('I','i'), ('M','m'), ('P','p'), ...etc ] ``` See the comments https://github.com/ryepdx/pyethrecover/blob/master/password_... for details.

The overall code is not complex: it should be straightforward to strip out the word generation from the wallet testing and re-purpose it for your needs.


👤 tgflynn
It's probably not difficult to generate the possible permutations but there may be a very large number. For example if there are 20 characters in the phrase upper/lower case alone gives about 1 million possibilities.

Also I'm not sure how you could try them automatically unless you have sshd running on the laptop.

I didn't understand the meaning of "s=5 o=0 e=3".


👤 gus_massa
I guess you don't want to reorder the letters.

Are the uppercase possible only at the beginning of each word, or it can be in LaTeXcase?