NousRandom -- Intelligent Randomness
API Details
Orthographic Passwords
Copyright 2016 Scott Michael Doctor
NousMind, NousCrypt, and NousRandom are trademarks of Scott Michael Doctor
Patents Pending
The Orthographic Password Generator creates passwords that are combinations of random Orthographic Elements of the English language. After many experiments, I found that using just the two letter orthographies and single letters created most all the 3, 4, and 5 letter orthographies. I made a Blog Post about the statistics and thought process behind the decision of which orthographies to use.

An orthographic word is built by the API by randomly assembling vowel and consonant orthographies.

Vowel Orthographies:
a, ae, ah, ai, al, ar, au, aw, ay, e, ea, ee, eg, eh, ei, eo, er, es, et, eu, ew, ey, i, ia, ic, ie, ig, ir, is, o, oa, oe, oi, oo, or, ot, ou, ow, oy, u, ua, ue, ui, uo, ur, ut, y, ye, yr

Consonant Orthographies:
b, bb, be, c, cc, ce, ch, ci, ck, cs, ct, cu, d, dd, de, dg, di, f, fe, ff, g, ge, gg, gh, gi, gn, gu, h, j, k, ke, kn, ks, l, ld, le, lf, lk, ll, lm, m, mb, me, mm, mp, n, nc, nd, ne, ng, nh, nn, p, pe, ph, pp, ps, pt, q, qu, r, re, rr, rt, s, sc, se, sh, si, ss, st, sw, t, te, th, ti, ts, tt, tw, v, ve, w, we, wh, wr, x, xe, z, ze, zi

The API randomly chooses whether to begin a word with a vowel or consonant. A syllable is defined as a pair of vowels and consonant orthographies. If a randomly chosen orthography ends in a vowel, then a consonant is chosen next, or vice versa.

Passwords always begin with an alphabet character. If the option to have symbols and/or numbers are enabled, the API guarantees to have at least one of each type in the password.

The orthographic password options are mostly the same as for the random word passwords.

The following are the API commands:

pwdorthographic -- This is the process id. The pwdorthographic command tells the API that you want to generate orthographic passwords.

cnt=d -- Sets the total count of passwords to generate. Default: 1
The cnt command defines the total passwords to generate. The passwords are returned as a single column list. One password per line. The maximum number of passwords per query is 10,000.

wordcnt=d -- Sets how many words to use in each password. Default: 3
The wordcnt command is how many words are selected from the dictionary to make the password. At least this number of words will be chosen. If the total number of characters in a password is less than the value of min, then additional words will be chosen until min is satisfied. The maximum number of words in a password is 64.

min=d -- Sets minimum number of syllables in a word. Default: 1
d
is a number which is greater or equal to 1 but less or equal to 256. A Syllable is defined as a pairing of a consonant and vowel orthography. A Word is a combination of Syllables. The API will choose a random length for each password so that it has between min and max number of syllables.

max=d -- Sets maximum number of syllables in a word. Default: 3
d
is a number which is greater or equal to 1 but less or equal to 256. A Syllable is defined as a pairing of a consonant and vowel orthography. A Word is a combination of Syllables. The API will choose a random length for each password so that it has between min and max number of syllables.

pwdwordspace -- Puts a single space character (0x20) between words.

Note that although n may be a floating point value, only its integer value is used. The number is not rounded. The fractional part is truncated. For example, if n is set to 4.9, then max will be assigned the value 4.

pwdupperlower -- Each character has random upper or lower case.
After the password is created. the API chooses a random number as a coin flip for each alphabet character in the password. The result of each coin flip decides whether that character is made upper or lower case.

pwdlower -- All alphabet characters will be lower case.
If the pwdnoalpha is selected to disable using the alphabet, then the pwdlower command is ignored.

pwdupper -- All alphabet characters will be UPPER case.
If the pwdnoalpha is selected to disable using the alphabet, then the pwdupper command is ignored.

pwdcapitalize -- Capitalize each password.
A password always has an alphabet character as the first character. If the pwdnoalpha is selected to disable using the alphabet, then the pwdcapitalize command is ignored. The first character of the password will be upper case. All the remaining letters will be lower case.

pwddigit -- Include all ten digits in the password.
The digits 0 to 9 are randomly included in the password. The API guarantees that at least one digit will occur in every password.

pwddigitex -- This is the default. Include digits excluding 0 and 1.
The digits 2 to 9 are randomly included in the password. The API guarantees that at least one digit will occur in every password. The digit 0 is easily confused with the letter O, o, and Q. The digit 1 is easily confused with the letters i, I,and l.

pwdnodigit -- Do not use any digits in the password.

pwdsymb1 -- This is the default. Randomly includes the symbols  ! # ( ) - . @ _  
These symbols are defined as acceptable characters for use in ID's and passwords by the IBM Knowledge Center. The API guarantees that at least one symbol will be used in the password.

pwdsymb2 --  Randomly includes the symbols ! # + - : _
These symbols were chosen based on examination of a very large number of password login specifications. The characters were chosen to be as universally acceptable as possible. The API guarantees that at least one of the characters will be used in the password.

pwdsymb3 -- Randomly includes the symbols - _
The API guarantees that at least one of the characters will be used in the password.

pwdsymb4 -- Randomly includes the symbol _
The API guarantees that at least one of the characters will be used in the password.

pwdnosymb -- Do not use any symbols in the password

The following are common formatting options. Full details are on the Results Formatting page.

nohtml
-- disables sending HTML tags. The tags are used for proper display in a web browser. HTML tags are not used if the numbers are sent as a text file.

astextfile -- Send the numbers as a text file. If the total count of numbers sent exceeds 16384, then the numbers will always be sent as a file.