we have a simple web site at [login to view URL]
the second function on that page is for password generation.
we'd like an additional function created that will generate a password using english words and simple patterns.
on that page, there will be another checkbox with the label "memorable".
when memorable is checked, it will generate a password of desired length (specified by the slider on that user interface). it will then need to pick randomly between several patterns:
4. etc. there must be many different patterns that would fit 2+ words, 1-4 symbols, in various orders
sample passwords that would be generated include:
passwords would be variable in length, but must include:
- 1x number
- 1x symbol
- 2x English words.
the words used will need to come from text files, so we can avoid using a 3rd party API or paying for AWS compute resources. the site will be hosted on AWS S3 and we want to keep to simply hosting text files. the logic would need to essentially do this:
- determine it needs a word X characters in length to add to password being generated
- pick from a list of text files that only contain words of X characters in length (i.e. [login to view URL], [login to view URL], [login to view URL], etc.).
- read only that one file and pick a random word from it (i.e. file may have 50 words and it picks 1 at random)
in terms of logic for password generation, please keep in mind this is a lot of simple math operations to consider:
- first, end-user picks length of password
- code picks a pattern to use at random
- based on pattern, it knows how many random symbols are necessary
- based on pattern, it knows how many random digits are necessary
- based on pattern, it knows how many random words are necessary
- the word length does not need to be fixed, so it could know it has 10 characters remaining to be filled with words (after adding required symbols and digits), and the code could randomly pick the length of the words, so we wouldn't have everyone with exactly 4 letter or 5 letter words
this should be fair easy for someone who knows what they're doing.
we need the source code to be original or based on open source to avoid any copyright and branding issues.
thank you for checking out this project.