Estimated amount of time needed to attempt all possible combinations:
Reasonable discovery (time needed to attempt half of the possible combinations):
Everything is client side and done in Javascript, but unfortunately because it is done in Javascript there is a limitation that varies by client to client when handling large numbers. This problem will only affect results that exceed several trillion years.
The resources required for a brute force attack scale exponentially with increasing key size, not linearly. As a result, doubling the length of a passphrase does not simply double the required number of operations, but rather squares it. To calculate the estimated amount of time needed to attempt all possible combinations, the following equation is used:
Seconds = ( ( ( Characters ^ Length ) / KPS ) / CPU )
In the study of cryptography it is assumed that you would not exhaust all possibilities just to discover the key last. Rather, as a rule of thumb, the key would be in the middle. This is why I have included a reasonable discovery total. The CPU count works as a total divider, so assuming the load on each CPU (or machine) is identical you can increment this number, otherwise keep it at 1.
As a reference, there are 95 usable characters on a standard US keyboard: