sanddbox wrote:I think I've got it.
Say your bruteforcer guesses 'a' and then guesses 'b' and then guesses 'c'...and you get the idea.
Assuming it goes in an order, (a-z, aa, ab, ac, etc), then all you would need to store in memory would be the very last attempt. From there, you could figure out the next password to guess.
Now, this is just something that I randomly thought of; I'm not sure if that's how it's actually done.
I understand that for matching a hash through brute-forcing you can discard each hash in turn, but when you're working to generate a hash collision (match ANY two hashes), you have to store each hash you calculate to be compared later (at least I assume so), like this:
1. Hash is generated.
2. Hash is compared to a table of hashes.
3. If no match is found in the table, the new hash is added to the table.
4. Goto 1
Since you have to calculate the absurd number I mentioned above to have any decent probability of finding a collision, I was just curious how they stored them. I've been learning about rainbow tables and I think I've got the basic gist, but there are still some parts I don't get.
"If I ever start a software company, I'm going to replace desks with toilets. I do my most inspired programming in the bathroom."