I've got a Google spreadsheet calculating password hash brute-force times based on a number of factors (length, complexity, hashing algorithm, attacker resources). I've got brute force time calculated in seconds, but depending on what values you plug in, the range of numbers varies wildly from seconds to centuries.
Right now I'm just dividing seconds by 86,400 to get days.. but trivially small times display as
0 days and extremely large times display as
4,000 days or
It'd be really nice if I could conditionally format the duration based on how big the number is. Even just a days/years distinction would help, but perfect world it would conditionally use seconds, minutes, hours, days, years, etc.
This seems like a problem someone must have solved before, but I've spent a while searching and haven't found a good way to do it.
Any advice/pointers appreciated.
Here's a link to my spreadsheet: https://docs.google.com/spreadsheets/d/1XQsXPZLR43LcFkJtBe2io1otXbwhzVXY-pdLWmNJrrM/edit?usp=sharing
The main sheet lets you specify the size of the character set you assume the passwords to contain and the number of GPUs the attack system has (using
oclhashcat). To brute force lower case alphabetical-only passwords you'd use a character set size of 26. A size of 95 is 26 capitals, 26 smalls, 10 numbers, and 33 symbols (including space).
The "Data" sheet calculates the number of possibilities for various password lengths based on your character set size, and some assumptions about how many hashes each GPU in the attack system can generate per second.
Together, they calculate on the main sheet how long it would take, in theory, to brute-force passwords of various lengths. The division by 86,400 is simply a conversion from durations of "seconds" to durations of "days".