Digital Mages

Digital Mages - yapw(1)

YAPW

Section: User Contributed Perl Documentation (1)
Updated: 2015-10-07
Index  

NAME

yapw - Yet Another Password Generator  

VERSION

# $Id: yapw,v 1.0 2015/10/07 22:32:11 acorliss Exp $  

USAGE

  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).

 

DESCRIPTION

This tools shamelessly apes a number of other password generators that are based on random, yet memorable, passwords. This is accomplished (in theory) by generating mostly syllabic passwords that, while hardy enough against dictionary attacks, are still word-like enough to be more easily memorized.

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.  

REQUIRED ARGUMENTS

None.  

OPTIONS

 

DIAGNOSTICS

Internal diagnostics from such a simple utility are probably not worth much, but the verbosity can be increased which prints to STDERR.  

EXIT STATUS

  0    Successful execution
  1    Critical failure

 

CONFIGURATION

None. Purely controlled via command-line arguments.  

BUGS AND LIMITATIONS

Yes, and YES! Thrown in for free. Enjoy!

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.  

AUTHOR

Arthur Corliss (corliss@digitalmages.com)  

LICENSE AND COPYRIGHT

This software is licensed under the same terms as Perl, itself. Please see http://dev.perl.org/licenses/ for more information.

(c) 2015, Arthur Corliss (corliss@digitalmages.com)


 

Index

NAME
VERSION
USAGE
DESCRIPTION
REQUIRED ARGUMENTS
OPTIONS
DIAGNOSTICS
EXIT STATUS
CONFIGURATION
BUGS AND LIMITATIONS
AUTHOR
LICENSE AND COPYRIGHT