In main(), you need to assign a value to charCtr, since initially it will contain garbage.

By calling srand() in calcCollisionPayload(), assuming that time() returns the time in seconds, you will be testing only one hash per second. This is because for the duration of each second, srand() will be called with the same value (e.g. srand(2), srand(2), srand(2), srand(2), etc), and rand() will return the same sequence of values, thus testing the same string each time. You just need to call srand() once, at program startup. This will find a collision much faster.

I'd also advise against naming a variable strlen, as that's the name of a standard function.