2) Если выбирается случайное, то нужно хранить массив уже опробованных, и каждое новое проверять не содержится ли в нем? что бы не было повторений? не быстрее ли перебирать по порядку?
3) Бывают конечно, но почему всегда такая найдется, не случайно , а гарантированно ? Разве можно как то спрогнозировать какие символы будет содержать хэш ? откуда тогда такая уверенность ?
Код на С читаешь ?(я нет) там можно посмотреть.
не гарантировано - иногда блок по несколько часов искали.