lundi 17 décembre 2007

[Going internal] Server resources

The first problem encountered while coding the project was the size of the database.
As you can easily compute, md5 are 128 bits hashes, which makes 2^128 different hashes. Only for storing the hashes without the corresponding plain text it will take 2^128 * 16 bytes = 2^132 bytes = 2^92 terabytes = ~5.4*10^27 terabytes. In other words : just unfeasible (at least for me actually :))

But the main purpose of this project is to recover user entered texts from a databases, which would only be composed of printable characters. According to the ASCII table, printable characters go from 0x20 (space) to 0xfe (~), that is 94 possibilities.

Going deeper with the length of the passwords, we can guess (or hope) that standard password length is about 8 characters, so complexity for this new scope of hashes is 94^8, which complexity is about 2^52. That's quite more accessible, but...

After the database grew up to 3GB, the small webserver I used to host this project began to swap and overload, so I migrate it quickly on a dedicated server hosted at home, reachable through my ADSL line. That way I can add as much RAM and HDD as I want for almost free, and the requirement in bandwidth is not so huge actually.

Aucun commentaire: