- Generates password based on a user-requested format
- The password is composed of segments of various types. (see table below)
- The user can provide the format or the app can randomly generate it.
- Random words are selected based on a random number to find the position in a text file. The text file can be provided by the user, point to a web page (URL), or selected from a built in list of text files.
- The password is tested agains a password strength meter
- Go to PWGen site.
- Select word source (Upload file, paste URL, select existing list)
- Set the password format. (Use the segment builder / Paste in one of your premade password formats)
- Generate multiple passwords based on format.
- Run each password through strength meter.
- Display list passwords with strength score. (Score is hyperlink to strength details - "strength-meter")
mkWordList(file)
- generate the wordlist_array[]- Remove top 5(?) occuring words. (Show these in
showFilesStats()
.) - Remove single letter words.
- Remove numbers, words with numbers, special characters and words with special characters.
- Remove top 5(?) occuring words. (Show these in
buildPW(format)
- concatenates the segments of the password by calling functions to create each segment based on "format".parseFormat(string)
- returns array of format. %W2%\@%d4 ==> ["W2","@1","d4"]randomFormat
- returns a random password format.randomPW
- returns random password.getWordOfLen(N)
- returns a random word from the list with length "N".getNum(N)
- selects a number with the N-length.getChar(N)
- returns random string of characters - length of N.showFileStats()
- Show stats of the word file - total/unique words, longest/shortest, top 5 words removed.pwlist[{"pwd":"","strength":""},{...},{...}]
Notes:
- If format="", random format will be returned.
- If N=NULL, 1 is assumed.
- If N=0, random number between 1 and 5 is used.
- Word Source:
- upload (text box/upload),
- URL (textbox),
- select (dropdown)
- Display File Stats
- Unique/Total words:
- 5 most common:
- Longest/Shortest
- Select Segments: Type (dropdown), Length(textbox, spinner)
- [Add segment]
- Display password format (textbox) [default: %W1%s1%d3]
- Number of choices (textbox)
- [Generate Passwords]
- List of choices: Password, Strength (Raw), Copy Icon
- [Redo] [Reset]
Notes:
- [Add Segment] creates properly formatted segments - %NX
- % is the segment delimiter.
- Properly formatted segment should be % followed by number then type => % + char + length.
- If no number is provided for length, length of 1 is assumed.
- If number is 0, random length between 1 and 5 is used.
char | type | example | description |
---|---|---|---|
a | lower-alpha | %a5 | 5 random lower-alpha characters |
A | upper-alpha | %A5 | 5 random upper-alpha characters |
M or m | mixed-case | %M3 | 3 random mixed-case characters |
d | digits | %d14 | 14 random digits |
s | symbol | %s | 5 (default) symbol (aka special character) |
\ | literal | %\! | produces ! |
x | any characters | %x14 | 14 random characters of any type |
wl | word (lower-case) | %wl3 | 3-letter word with all lower-case letters |
wu | word (upper-case) | %wu5 | 5-letter word with all upper-case letters |
wt | word (title-case) | %wt0 | 5-letter word with first letter capitalized |
nl, nu, nt | noun (upper-, lower-, title-case) | ||
vl, vu, vt | verb (upper-, lower-, title-case) | ||
jl, ju, jt | adjective (upper-, lower-, title-case) | ||
bl, bu, bt | adverb (upper-, lower-, title-case) |
Usage example
%T5%\\\.%d4%s%x5
segment | Descripton |
---|---|
%T5 | 1 5-letter title-case word |
%\. | dot |
%d4 | 4 digits |
%s | random number of symbols |
%x5 | 5 random characters of any type |
Possible result
Hello.1234$eH&12
Test your passwords at http://www.passwordmeter.com/