The current logic in DictionaryMatcher.cs is quite slow. I'd like to propose changing it to use a proper algorithm searching for a finite set of patterns. In particular I'd like to suggest the Commentz-Walter, which is the multi-pattern equivalent of the Boyer-Moore and thus extremely fast.
Thank you for considering this enhancement. If you want: I am willing to send a merge request implementing it.
A simpler improvement which limits j - i to the longest word in the dictionary should already improve performance for long passwords (going from O(n^2) to O(n), albeit with a dictionary dependent constant).
The current logic in DictionaryMatcher.cs is quite slow. I'd like to propose changing it to use a proper algorithm searching for a finite set of patterns. In particular I'd like to suggest the Commentz-Walter, which is the multi-pattern equivalent of the Boyer-Moore and thus extremely fast.
Thank you for considering this enhancement. If you want: I am willing to send a merge request implementing it.