-
-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Option to sort all patterns by entropy #17
Comments
Current workaround that also shows the output that I meant above, using |
OK, sorting by entropy shouldn't be hard, and in fact I could add other sorting options. Any suggestions? I'm thinking at least:
Also, please note that peach pattern has a few "labels" attached, which are shown with Then by using For example:
|
Some kind of "human readability criteria" maybe? It's more complicated than simple entropy/length, and definitely subjective, but I'd probably add metadata tags with fixed subjective-weight to each existing pattern, like these:
And then sort by sum of those for that readability metric. ("words" as in human-language-like consonant-vowel intermingling, "no-similar-glyphs" as in no "0"/"O", "l"/"I", and other easy-to-mistake-for-something-else characters in the pattern, like in Crock's Base32) I think when generating password for manual use (and not password manager), it might be way more useful than entropy ordering, because you basically don't care about any patterns that'd be less than halfway down the list, as words and cons-vowel patters have an overwhelming advantage for this use-case. |
Oh, that already does same thing as with the "tags" idea described above. I'd probably have "memorable" sort-criteria separate from "readable", making length to also be a major ordering factor there, while leaving "readable" to be "label weights, then pattern" (with diff-length patters with similar readability grouped together). |
I think general difficulty for me with the current interface is that it seem to be designed for precision, where you have to know and specify most stuff in advance (labels, entropy and length limits, etc). Which is great for automated use, and that's probably the main goal behind the tool, but when using it manually, it's not very useful to learn the names and precise values of all this stuff - just show me examples in roughly right order, and I'll figure it all out visually within seconds! |
Indeed, the main problem of the password generator tool is that one has to know in advance what he wants. (That's why I've implemented so many patterns, that from a security point of view are completely equivalent, given the same entropy in bits.) However, as you've said, any ordering or labeling is highly subjective. With regard to computing the "weighted metric" you've proposed I think is highly problematic; not that it's a technical problem, but that when implemented I think the order would be quite wrong and random looking. I can't say this now without trying (I'll probably do so in the weekend), but I'm basing this on the experience with Regarding the actual score computation, there are two options to merge the weights:
Perhaps a better approach would be an interactive system that lets one browse or fine-tune what he needs? |
Yeah, but imo it's perfectly fine for a visual table, as long as unreadable base64 gobbledygook ends up after word-separated consonant-vowel patterns. Ordering between roughly similar stuff might as well be entirely random. Dunno if fine-tuning or overthinking it in other ways is worth bothering with, when the idea is to mostly "let the user sort it out visually, without having to code their own sorting algorithm, knowing all the parameters up-front". |
Hi,
z-tokens patterns
tends to produce a long list of different tokens, and as a user, my goal is to pick pareto-optimal token by multiple criterias in that table.Namely, something that will be sufficiently readable, not too long/hard to type, not too confusing-looking, and with high-enough entropy.
These goals are in conflict, so --entropy-min/--entropy-max or similar options are not very useful, since regardless of what I decide to pick as --entropy-min, it's quite possible that none of the options presented there will meet other criterias.
So ideally, I'd like to have a list, sorted by non-subjective criteria, like "entropy", where e.g. all options around 80-bits are all right next to each other, so that I can easily visually compare subjective parameters like length/readability/visual-confusion/etc between those, to pick the best combination.
But at least with current z-tokens 0.3.0 release, there is no option to do that - patterns are presented in alphabetical order, which is not useful for the purpose above.
It is of course possible to sort the list using e.g. unix "sort" tool, but it's a complicated table with many fields, so I think maybe some simple option like
z-tokens patterns --sort-by entropy
would be a nice addition?Don't think I'll make a PR for it myself, unfortunately.
Thanks.
The text was updated successfully, but these errors were encountered: