1 |
On 04/28/2011 10:04 AM, Mick wrote: |
2 |
> This finds the passphrase and prints it out on the terminal. However, its |
3 |
> success depends on the dictionary file I use. Also, it's not particularly |
4 |
> fast ... |
5 |
> |
6 |
> Any idea how I can create a dictionary file? I've used apg but it's <aheam!> |
7 |
> too random. :-) |
8 |
> |
9 |
> I have been given something like 6 passphrases that may have been used. The |
10 |
> problem is that at the time of creation the passphrase was typed in |
11 |
> incorrectly (twice!) So I would need to use some method of generating a |
12 |
> dictionary with potential typos of these known passphrases (pretty much how |
13 |
> the rephrase application works). What is a good way to generate such a file |
14 |
> by imputing a range of candidate characters? |
15 |
> |
16 |
> Finally, is there a way or parallelising the run so that it speeds up? |
17 |
> |
18 |
|
19 |
If you know the actual passphrase is "close" to some known passphrase, |
20 |
read up on the concept of Levenshtein distance: |
21 |
|
22 |
http://en.wikipedia.org/wiki/Levenshtein_distance |
23 |
|
24 |
If you can define a function that computes all passwords of Levenshtein |
25 |
distance 1 from a given password, then you can run that function twice |
26 |
to get the password of distance 2,3... Three or four is probably a good |
27 |
place to stop. |
28 |
|
29 |
Then you can take those six known passwords, and compute all words of |
30 |
distance 1,2,3 from all of them. Stick those in a list, and try them. |