yapw, $VERSION: (c) 2015, Arthur Corliss <corliss\@digitalmages.com> Usage: yapw [-l {n}] [-s {n}] [-p {n}] [-u {n}] [-d {n}] [-c {punc}] [-nVvh] -l --length Character length of generated passwords -s --spaces Number of spaces to include -p --punc Number of punctuations to include -u --upper Number of uppercase characters to include -d --digits Number of digits to include -c --pclass Character class to use for punctuation -n --noext No extended consonant/vowel sequences -V --version Version of this program -v --verbosity Print internal diagnostics -h --help This text. Defaults: 8 characters long, no spaces, one punctuation, one digit, punctuation from [@^%/!.#] (brackets are not part of the class).
Like other password generators this utility supports injecting additional hardening characters like punctuation, numbers, spaces, and, of course, mixed capitalization.
Any innovations offered by this utility (in contrast to others) are probably dubious in value, but are offered here as-is. In addition to being highly tuneable (it is even possible to generate pure line-noise passwords) it expands the syllable concept beyond simple consonant/vowel pairings in order to make the array of element patterns richer. To that end, if passwords are sufficiently long enough ``extended'' syllables are offered, consisting of common English-derived consonant and vowel groupings.
For instance, a syllable could start with ph, st, or one of many other examples. The vowel segments might instead include ea, ou, or other such pairings. Similarly, a syllable could be just a single vowel, as well. Together, that extends the concept of syllable patterns from a hard two-character pattern to a 1 - 4 character pattern.
Couple that with spaces, user-overridable punctuation character classes, and digits, and you should end up with something that's memorable, yet worthy.
0 Successful execution 1 Critical failure
On a more serious note: spaces are injected at random betwen syllables and special characters, but they do follow a few rules:
1) Spaces cannot occur at the beginning or the end of a password 2) Spaces can only occur isolated, so there will never be a sequence of two or more spaces in a rwo
Since passwords are assembled as randomly as possible the generator will try to assemble such a beast a hundred times. If it fails, it will gradually prune one space from the number of spaces it was instructed to use until it's successful within a hundred attempts.
This does mean that while your instructions may be technically feasible, a high ratio of spaces to syllables and special characters might make it improbable at random, so you may get less spaces than you wanted. This is intentional. To not do so would make password generation run times random and non-deterministic.
Similarly: capitalization has similar constraints. In trying to keep the password word-like visually capitalization will preferrably be applied only to the first character of any given syllable. In the even that more capitals are required than syllables then entire syllables will be capitalized.
One final caveat for capitalization exists, however. Because we consider it imperative that maintain some level of mixed cases present we will always defer at least one syllable from being capitalized at all.
(c) 2015, Arthur Corliss (corliss@digitalmages.com)
Copyright © 1997 - 2016, Arthur Corliss, all rights reserved.