Как подсчитать время которое потребуется на перебор пароля?
ну так разделите одно на другое - и получите количество секунд. 
с коллизиями аналогично.  у Вас есть длина строки и сомвольный набор. Считаете количество комбинаций, делите на скорость перебора - профит.
2^128/33100000000=1,028043405×10²⁸/(3600*24*365)=3,259904251×10²¹ лет  велком
не одна строка имеет несколько хешей, на несколько строк имеют один хэш, но вам не важно подобрать тот же самый пароль, вам нужно чтобы он удовлетворял условию совпадению хэш
habrahabr.ru/post/110809
https://github.com/VladX/md5-bruteforcer
если предположить что пароль  ASCII, то для 20 символьного пароль значений чуть поменьше, 64^20=1,329227996×10³⁶
есть словари, на несколько гигабайт, где собраны типичные пароли