Hello fellow Monks!
First off, let me apologize if this is a double post, I thought I posted it before, but I don't see it, so maybe I didn't hit the submit button. OOps!
I was hoping someone might help me with figuring out some concepts of an algorithm. I want to design a password cracker (I swear to you that I'm not using this for nefarious means, it will be used by my Network Security business), that tries every possible character combination for a 16 character password.
The possible characters would be upper and lower case alphabet characters, numbers, and special characters. I need to be able to try every possible character combination, so initially I thought to implement it with a straightfoward for loop, one for each possible character (of the 16 possible characters in the password), and then have each for loop loop on each character from an array of the possible characters to be used.
Well, I've got that, but as you can imagine, its terribly inefficient. There's two things that I think could be done to improve this, but I'm struggling to figure out how to implement them. One thing I thought would help would be to randomize the order of the characters that are being checked. Right now, with the 16 for loop implementation, it checks like this:aaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaab, aaaaaaaaaaaaaaac, ... What I'd like to see it do is just like this, but in a randomized order, so say one iteration checks aTu7*cx12_awerya, the next checks something totally different. I haven't been able to think of anyway to do this.
My next idea on how to speed it up would of course be to use threading. But what exactly would I thread on? Its really not going to help me if I have 10 threads all going thru the exact same set of iterations. Perhaps randomizing the order of the arrays would make this useful. One problem I see that threading could possibly solve is the way the for loops cause the script to check the passwords. Right now, it checks in this order:a, aa, aaa, aaaa, ..., aaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaab, ..., b, bb, bbb, bbbb, ...It would be nice to see the threads be able to handle this differently so that it doesn't check every possible 16th character in the combination before it moves back to the first.
Another nice feature that I thought would make it faster would be to distribute the test between multiple computers. Does anyone know of a module that could handle something like that?
Thanks for all the help on prior questions. I look forward to hearing what y'all have to say.edited: Thu Jul 24 01:08:30 2003 by jeffa - title change (was: 'Algorithm Concepts')
In reply to Password cracking algorithm by SyN/AcK
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |