This project is a React Vite application that allows users to generate strong, memorable passwords based on personal inputs. The app provides 30 unique options for users to select from, where they can input memorable information that is not commonly used in security questions. The generated passwords are designed to be secure while still easy for the user to remember.
The purpose of this project is to help users create passwords that are both strong and easy to remember by leveraging personal, yet obscure, information. Traditional passwords often rely on easily guessable information, such as favorite things or obvious dates, which can make them vulnerable to attacks. By allowing users to choose from a variety of unique and less common options, this password generator ensures that the passwords are difficult to guess while still being meaningful and memorable to the user.
-
Selection of 30 Unique Options: Users can select from a list of 30 different input types. These inputs are designed to be unique and memorable to the user but difficult for others to guess.
-
Password Length Control:
- An input field allows the user to specify the exact length of the password (between 8 and 50 characters).
- A slider is also available for easy adjustment of the password length.
-
Password Generation:
- A
Generate
button creates the password based on the selected inputs. - A
Regenerate
button replaces theGenerate
button after the first use, allowing the user to generate a new password based on the same inputs. - A
Clear
button resets all inputs and selections. - A
Copy
button allows the user to easily copy the generated password to the clipboard.
- A
-
Password Explanation: After generating the password, the app provides an explanation of the different parts of the password based on the user's inputs.
- Use the first letter of each word from a random phrase you created.
- Select a sequence of numbers from the page number of a random book.
- Combine random syllables from three different words.
- The day of the month you first learned something significant.
- The number of windows in your house or apartment.
- The number of letters in a word you find interesting but obscure.
- The first three letters from three different street names you’ve lived on.
- A sequence of letters from a made-up word or phrase only you would know.
- The number of steps it takes to walk from your bed to your front door.
- A mix of random letters from two different languages you are familiar with.
- A string of digits from a specific but obscure mathematical constant or ratio you find interesting.
- A pattern from a repeated keystroke on your keyboard (e.g., a specific sequence of letters from one row).
- The number of photos in your last photo album multiplied by 2.
- An anagram of a word or phrase you invented that holds meaning to you.
- A string of numbers derived from counting objects in a specific room (e.g., books on a shelf, chairs in your kitchen).
- The name of a made-up character from a story you wrote, combined with a random number.
- The number of hours in a specific day you consider productive or memorable.
- A code created by replacing letters in a word you like with numbers based on their position in the alphabet.
- The date of an event you participated in but in reverse order.
- The number of unread emails in your inbox right now.
- The first letters of a song lyric you enjoy but not a favorite one.
- The number of pages in a book that has impacted you but isn’t widely known.
- A combination of numbers from a stopwatch time you’ve recently recorded.
- An acronym from an inside joke or a phrase known only to you and a few others.
- The first three letters from a non-English word you find beautiful.
- A code based on a specific time you often notice on the clock (e.g., 11:11).
- A random sequence from a keyboard pattern you create (e.g., ZXC+ random numbers).
- The number of keys on a specific keyboard (e.g., piano, computer).
- A sequence of initials from the names of people in a random photograph you have.
- The first letters from three or more different street names you've passed by recently.
Example passwords that could be generated include:
ClctT9@347EleUmb
1111ZXCwIndW137
Each part of the password is generated based on the user’s inputs, making it easier to remember. For example:
ClctT
could be based on the phrase "Cats love climbing tall trees."347
could come from the page number in a random book.EleUmb
might be derived from combining random syllables from three different words.
Once the project is running, users can:
- Select from the 30 different options to input memorable information.
- Adjust the password length using the input field or slider.
- Generate a strong password by clicking the
Generate
button. - Regenerate the password as needed.
- Clear the inputs if they wish to start over.
- Copy the generated password to the clipboard for use.
Contributions are welcome! If you'd like to contribute, please fork the repository and create a pull request.
This project is licensed under the MIT License. See the LICENSE file for more details.