Возможно, вам не удастся сократить время, необходимое для попытки расшифровки архива, но, предполагая, что пароль не является полностью случайным (что может быть), вы можете получить правильный пароль больше быстро, если вы заказываете буквы в порядке уменьшения вероятности использования .
Например, в Linux Journal столбец сценария оболочки проанализировал несколько больших текстов, чтобы определить, что e, t, a, o, n, i, s, r, h и d были наиболее распространенными буквами в этих текстах (и предположительно это близко к английскому языку в целом). Так что изменив вторую строку на:
Alphabets = "ETAONIBSRHDCFGJKLMPQUVWXYZ"
может привести к тому, что ваш алгоритм получит пароль за меньшее количество итераций.
Редактировать: Вторые мысли
Если пароль, как кто-то указал, «cat», исходный порядок потребует 3 прохода через внешний цикл, тогда как новая версия потребует 11 проходов, так что в этом случае он не решит его быстрее. Поэтому, возможно, вам нужно оптимизировать список для внешнего цикла, пытаясь предсказать наиболее вероятную первую букву.