john icon indicating copy to clipboard operation
john copied to clipboard

Alternative external:subsets mode

Open magnumripper opened this issue 7 years ago • 1 comments

External "subsets" mode can be very effective, but:

  • It iterates first over output-length, then over the charset and last over subset-length. This means it will exhast up to max. length of [ab] before it switches to [ac]. Or put in other words, given a max length of 16 it will try "aaaaaaaaaaaaaaaab" before it tries "ac". And "abz" will come very, very late.
  • It may produce a massive amount of dupes (this is documented). For smaller charsets and lengths it's close to 50%.

Wouldn't iterating over charset, then over output-length and last over subset-length will be a whole lot more effective? I think it would also mean an "as long as feasible" run will be a better subset of a complete run than it is now (more combinations for shorter lengths). Put in other words, it would produce "ac" long before "aaaaaaaaaaaaaaaab" but the latter will still come before "abc".

Perhaps both variants can be kept, if they're good in different situations. Anyway I'm not sure how hard this would be to implement (fast and with no dupes), I haven't wrapped my head around it yet.

magnumripper avatar Dec 05 '17 23:12 magnumripper

@magnumripper How does your built-in Subsets mode compare to what you described here? If it takes care of all of this, then maybe close that issue with such comment?

solardiz avatar May 25 '24 15:05 solardiz

Oh, right. The subsets mode takes care of all this - no dupes and better order (which is also tweakable).

magnumripper avatar Jul 14 '24 22:07 magnumripper